home *** CD-ROM | disk | FTP | other *** search
- ;
- ; Disassembled by:
- ; DASMx object code disassembler
- ; (c) Copyright 1996-1999 Conquest Consultants
- ; Version 1.30 (Oct 6 1999)
- ;
- ; File: robotki!.bin
- ;
- ; Size: 4096 bytes
- ; Checksum: 00F5
- ; CRC-32: 4671B7F7
- ;
- ; Date: Wed Dec 03 12:39:48 2003
- ;
- ; CPU: Signetics 2650 (2650 family)
- ;
- ;Hardware Equates/Memory Map----------------------------------------------
- ; $0000..$0FFF: ROM (first 4K of cartridge)
- ; $1000..$17FF: unmapped
- ; $1800..$18CF: upper screen
- ; $18D0..$18EF: user RAM
- SPRITE0Y equ $18F0
- SPRITE0X equ $18F1
- SPRITE1Y equ $18F2
- SPRITE1X equ $18F3
- SPRITE2Y equ $18F4
- SPRITE2X equ $18F5
- SPRITE3Y equ $18F6
- SPRITE3X equ $18F7
- ; $18F8..$18FB: user RAM
- CRTCVPR equ $18FC ;crtc vertical position register
- PITCH equ $18FD ;also other uses
- ; bit 7: 0 = normal mode
- ; 1 = alternate character mode colour 2x2
- ; bits 6..0: pitch
- VOLUME equ $18FE ;also other uses
- ; bits 7..5: horizontal scanline scrolling (0..7)
- ; bit 4: noise on/off
- ; bit 3: tones on/off
- ; bits 2..0: volume (0..7)
- CHARLINE equ $18FF ;current character line
- P1LEFTKEYS equ $1900
- ; bits 7..4: unknown
- ; bit 3: p1 (left) '1' button
- ; bit 2: p1 (left) '4' button
- ; bit 1: p1 (left) '7' button
- ; bit 0: p1 (left) 'E' button (Enter)
- P1MIDDLEKEYS equ $1901
- ; bits 7..4: unknown
- ; bit 3: p1 (left) '2' button
- ; bit 2: p1 (left) '5' button
- ; bit 1: p1 (left) '8' button
- ; bit 0: p1 (left) '0' button
- P1RIGHTKEYS equ $1902
- ; bits 7..4: unknown
- ; bit 3: p1 (left) '3' button
- ; bit 2: p1 (left) '6' button
- ; bit 1: p1 (left) '9' button
- ; bit 0: p1 (left) 'C' button (Clear)
- P1PALLADIUM equ $1903
- ; bits 7..4: unknown
- ; bit 3: p1 (right) Palladium button #1
- ; bit 2: p1 (right) Palladium button #2
- ; bit 1: p1 (right) Palladium button #3
- ; bit 0: p1 (right) Palladium button #4
- P2LEFTKEYS equ $1904
- ; bits 7..4: unknown
- ; bit 3: p2 (right) '1' button
- ; bit 2: p2 (right) '4' button
- ; bit 1: p2 (right) '7' button
- ; bit 0: p2 (right) 'E' button (Enter)
- P2MIDDLEKEYS equ $1905
- ; bits 7..4: unknown
- ; bit 3: p2 (right) '2' button
- ; bit 2: p2 (right) '5' button
- ; bit 1: p2 (right) '8' button
- ; bit 0: p2 (right) '0' button
- P2RIGHTKEYS equ $1906
- ; bits 7..4: unknown
- ; bit 3: p2 (right) '3' button
- ; bit 2: p2 (right) '6' button
- ; bit 1: p2 (right) '9' button
- ; bit 0: p2 (right) 'C' button (Clear)
- P2PALLADIUM equ $1907
- ; bits 7..4: unknown
- ; bit 3: p2 (right) Palladium button #1
- ; bit 2: p2 (right) Palladium button #2
- ; bit 1: p2 (right) Palladium button #3
- ; bit 0: p2 (right) Palladium button #4
- CONSOLE equ $1908
- ; bits 7..3: unknown
- ; bit 2: DIFFICULTY button
- ; bit 1: OPTION button
- ; bit 0: START button
- ; $1909..$197F: unmapped
- ; $1980..$1987: sprite #0
- ; $1988..$198F: sprite #1
- ; $1990..$1997: sprite #2
- ; $1998..$199F: sprite #3
- UDC0 equ $19A0
- ; $19A0..$19A7: user-defined character #0
- UDC1 equ $19A8
- ; $19A8..$19AF: user-defined character #1
- UDC2 equ $19B0
- ; $19B0..$19B7: user-defined character #2
- UDC3 equ $19B8
- ; $19B8..$19BF: user-defined character #3
- ; $19C0..$19F7: unmapped
- RESOLUTION equ $19F8
- ; bit 7: 0 = normal mode
- ; 1 = block graphics mode
- ; bit 6: 0 = low-res mode
- ; 1 = high-res mode
- ; bits 5..0: rectangle descriptions in block graphics mode
- BGCOLOUR equ $19F9
- ; bit 7: 0 = low-res mode
- ; 1 = high-res mode
- ; bit 6: paddle interpolation (switches between axes of analog sticks)
- ; bits 5..3: colours of tile set 0
- ; bits 2..0: background colour
- SPRITES23CTRL equ $19FA
- ; bit 7: 0 = sprite #2 double-height
- ; 1 = sprite #2 normal
- ; bit 6: 0 = sprite #3 double-height
- ; 1 = sprite #3 normal
- ; bits 5..3: colours of sprite #2
- ; bits 2..0: colours of sprite #3
- SPRITES01CTRL equ $19FB
- ; bit 7: 0 = sprite #0 double-height
- ; 1 = sprite #0 normal
- ; bit 6: 0 = sprite #1 double-height
- ; 1 = sprite #1 normal
- ; bits 5..3: colours of sprite #0
- ; bits 2..0: colours of sprite #2
- BGCOLLIDE equ $19FC
- ; bits 7..4: unknown
- ; bits 3..0: collision between sprites #3..#0 (respectively) and background
- SPRITECOLLIDE equ $19FD
- ; bits 7..6: unknown
- ; bit 5: sprites #2/#3 collision
- ; bit 4: sprites #1/#3 collision
- ; bit 3: sprites #1/#2 collision
- ; bit 2: sprites #0/#3 collision
- ; bit 1: sprites #0/#3 collision
- ; bit 0: sprites #0/#3 collision
- P2PADDLE equ $19FE
- P1PADDLE equ $19FF
- ; $1A00..$1ACF: lower screen
- ; $1AD0..$1AFF: user RAM
- ; $1B00..$1FFF: unmapped
- ; $2000..$7FFF: ROM (last 24K of cartridge)
- ;2650 Equates-------------------------------------------------------------
- z equ 0
- eq equ z
- p equ 1
- gt equ p
- n equ 2
- lt equ n
- un equ 3
- ;-------------------------------------------------------------------------
- org $0000
- ;
- eorz r0 ;r0 = 0; ;1
- bctr,un L0004 ;goto L0004; ;2
- ;
- db $17
- ;
- L0004:
- lpsu ;PSU = r0; ;2
- lpsl ;PSL = r0; ;2
- ppsu $20 ;PSU |= %00100000; ;2
- ppsl $02 ;PSL |= %00000010; ;2
- strz r1 ;r1 = r0; ;1
- stra,r0 $18FA ;*($18FA) = r0; // user RAM ;3
- stra,r1 CRTCVPR ;CRTCVPR = r1; // hardware registers ;3
- L0011:
- tpsu $80 ;test bits %10000000 of PSU; ;2
- bcfr,eq L0011 ;if != goto L0011; ;2
- L0015:
- tpsu $80 ;test bits %10000000 of PSU; ;2
- bctr,eq L0015 ;if == goto L0015; ;2
- L0019:
- stra,r0 $17FF,r1 ;*($17FF + r1) = r0; ;3
- stra,r0 $19FF,r1 ;*($19FF + r1) = r0; ;3
- stra,r0 $18FF,r1 ;*($18FF + r1) = r0; ;3
- bdrr,r1 L0019 ;if (--r1 != 0) goto L0019; ;2
- bsta,un L0A11 ;gosub L0A11; ;3
- loda,r0 $0DFB ;r0 = *($0DFB); // ROM ;3
- stra,r0 $1AF5 ;*($1AF5) = r0; // user RAM ;3
- lodi,r0 $10 ;r0 = $10; ;2
- lodi,r1 $04 ;r1 = $04; ;2
- L0031:
- stra,r0 $180A,r1 ;*($180A + r1) = r0; ;3
- bdrr,r1 L0031 ;if (--r1 != 0) goto L0031; ;2
- eorz r0 ;r0 = 0; ;1
- bcta,un L00B1 ;goto L00B1; ;3
- ;
- L003A:
- bsta,un L0A95 ;gosub L0A95; ;3
- loda,r0 CONSOLE ;r0 = CONSOLE; // hardware registers ;3
- strz r1 ;r1 = r0; ;1
- andi,r0 $01 ;r0 &= %00000001; ;2
- bcfr,eq L0052 ;if != goto L0052; ;2
- lodz r1 ;r0 = r1; ;1
- andi,r0 $02 ;r0 &= %00000010; ;2
- bcfa,eq L00AA ;if != goto L00AA; ;3
- andi,r1 $04 ;r1 &= %00000100; ;2
- bcfa,eq L00BD ;if != goto L00BD; ;3
- X0050:
- bctr,un L0072 ;goto L0072; ;2
- ;
- L0052:
- bsta,un L0A11 ;gosub L0A11; ;3
- eorz r0 ;r0 = 0; ;1
- stra,r0 $1AF7 ;*($1AF7) = r0; // user RAM ;3
- stra,r0 $1AF6 ;*($1AF6) = r0; // user RAM ;3
- lodi,r0 $01 ;r0 = $01; ;2
- strr,r0 *$0073 ;*(*($0073)) = r0; // ROM ;2
- L0060:
- tpsu $80 ;test bits %10000000 of PSU; ;2
- bcfr,eq L0060 ;if != goto L0060; ;2
- lodi,r0 $FF ;r0 = $FF; ;2
- stra,r0 $1AFA ;*($1AFA) = r0; // user RAM ;3
- stra,r0 $1AFB ;*($1AFB) = r0; // user RAM ;3
- bsta,un L00E7 ;gosub L00E7; ;3
- bsta,un L0159 ;gosub L0159; ;3
- L0072:
- loda,r0 $18FA ;r0 = *($18FA); // user RAM ;3
- bctr,eq L0093 ;if == goto L0093; ;2
- bctr,lt L007C ;if < goto L007C; ;2
- bcta,un L0199 ;goto L0199; ;3
- ;
- L007C:
- loda,r0 CRTCVPR ;r0 = CRTCVPR; // hardware registers ;3
- comi,r0 $06 ;compare r0 against $06; ;2
- bctr,lt L0096 ;if < goto L0096; ;2
- addi,r0 $FD ;r0 += $FD; ;2
- strr,r0 *$007D ;*(*($007D)) = r0; // ROM ;2
- lodi,r1 $06 ;r1 = $06; ;2
- lodi,r0 $FF ;r0 = $FF; ;2
- L008B:
- stra,r0 $18F1,r1 ;*($18F1 + r1) = r0; ;3
- stra,r0 $18E3,r1 ;*($18E3 + r1) = r0; ;3
- bdrr,r1 L008B ;if (--r1 != 0) goto L008B; ;2
- L0093:
- bcta,un L0999 ;goto L0999; ;3
- ;
- L0096:
- lodi,r0 $01 ;r0 = $01; ;2
- strr,r0 *$0073 ;*(*($0073)) = r0; // ROM ;2
- bsta,un L0A43 ;gosub L0A43; ;3
- bsta,un L00E7 ;gosub L00E7; ;3
- eorz r0 ;r0 = 0; ;1
- strz r3 ;r3 = r0; ;1
- stra,r0 $18E0 ;*($18E0) = r0; // user RAM ;3
- bsta,un L0186 ;gosub L0186; ;3
- bctr,un L0093 ;goto L0093; ;2
- ;
- L00AA:
- loda,r0 $18FB ;r0 = *($18FB); // user RAM ;3
- addi,r0 $01 ;r0++; ;2
- andi,r0 $03 ;r0 &= %00000011; ;2
- L00B1:
- strr,r0 *$00AB ;*(*($00AB)) = r0; // ROM ;2
- addi,r0 $01 ;r0++; ;2
- iori,r0 $90 ;r0 |= %10010000; ;2
- stra,r0 $1815 ;*($1815) = r0; // upper screen ;3
- eorz r0 ;r0 = 0; ;1
- bctr,un L00CC ;goto L00CC; ;2
- ;
- L00BD:
- loda,r0 $1AF4 ;r0 = *($1AF4); // user RAM ;3
- addi,r0 $01 ;r0++; ;2
- lodr,r1 *$00AB ;r1 = *(*($00AB)); // ROM ;2
- bctr,eq L00CA ;if == goto L00CA; ;2
- andi,r0 $07 ;r0 &= %00000111; ;2
- bctr,un L00CC ;goto L00CC; ;2
- ;
- L00CA:
- andi,r0 $03 ;r0 &= %00000011; ;2
- L00CC:
- strr,r0 *$00BE ;*(*($00BE)) = r0; // ROM ;2
- addi,r0 $01 ;r0++; ;2
- iori,r0 $50 ;r0 |= %01010000; ;2
- stra,r0 $181F ;*($181F) = r0; // upper screen ;3
- bsta,un L0A43 ;gosub L0A43; ;3
- eorz r0 ;r0 = 0; ;1
- stra,r0 $18FA ;*($18FA) = r0; // user RAM ;3
- bsta,un L0FE7 ;gosub L0FE7; ;3
- lodi,r0 $EE ;r0 = $EE; ;2
- stra,r0 CRTCVPR ;CRTCVPR = r0; // hardware registers ;3
- bcta,un L0060 ;goto L0060; ;3
- ;
- L00E7:
- loda,r1 $18F9 ;r1 = *($18F9); // user RAM ;3
- lodr,r0 *$00BE ;r0 = *(*($00BE)); // ROM ;2
- andi,r0 $03 ;r0 &= %00000011; ;2
- stra,r0 $18D0 ;*($18D0) = r0; // user RAM ;3
- lodi,r2 $00 ;r2 = $00; ;2
- L00F3:
- loda,r0 $0050,r1+ ;r0 = *($0050 + ++r1); ;3
- strz r3 ;r3 = r0; ;1
- bctr,lt L0117 ;if < goto L0117; ;2
- addi,r3 $21 ;r3 += $21; ;2
- comi,r3 $CE ;compare r3 against $CE; ;2
- bctr,gt L00F3 ;if > goto L00F3; ;2
- loda,r0 $1800,r3 ;r0 = *($1800 + r3); ;3
- bcfr,eq L00F3 ;if != goto L00F3; ;2
- lodi,r0 $BC ;r0 = $BC; ;2
- stra,r0 $1800,r3 ;*($1800 + r3) = r0; ;3
- lodz r3 ;r0 = r3; ;1
- stra,r0 $1AE1,r2 ;*($1AE1 + r2) = r0; ;3
- loda,r0 $0FDF,r2 ;r0 = *($0FDF + r2); ;3
- eori,r0 $FF ;r0 ^= %11111111; ;2
- anda,r0 $18D8 ;r0 &= *($18D8); // user RAM ;3
- bctr,un L013A ;goto L013A; ;2
- ;
- L0117:
- andi,r3 $7F ;r3 &= %01111111; ;2
- addi,r3 $10 ;r3 += $10; ;2
- lodz r3 ;r0 = r3; ;1
- comi,r0 $40 ;compare r0 against $40; ;2
- bctr,gt L0126 ;if > goto L0126; ;2
- andi,r0 $0F ;r0 &= %00001111; ;2
- comi,r0 $04 ;compare r0 against $04; ;2
- bctr,lt L00F3 ;if < goto L00F3; ;2
- L0126:
- loda,r0 $1A00,r3 ;r0 = *($1A00 + r3); ;3
- bcfr,eq L00F3 ;if != goto L00F3; ;2
- lodi,r0 $BC ;r0 = $BC; ;2
- stra,r0 $1A00,r3 ;*($1A00 + r3) = r0; ;3
- lodz r3 ;r0 = r3; ;1
- stra,r0 $1AE1,r2 ;*($1AE1 + r2) = r0; ;3
- loda,r0 $0FDF,r2 ;r0 = *($0FDF + r2); ;3
- iora,r0 $18D8 ;r0 |= *($18D8); // user RAM ;3
- L013A:
- strr,r0 *$0138 ;*(*($0138)) = r0; // ROM ;2
- addi,r2 $01 ;r2++; ;2
- comi,r2 $08 ;compare r2 against $08; ;2
- bcfa,eq L00F3 ;if != goto L00F3; ;3
- loda,r0 $18D0 ;r0 = *($18D0); // user RAM ;3
- bctr,eq L016F ;if == goto L016F; ;2
- addi,r0 $FF ;r0--; ;2
- stra,r0 $18D0 ;*($18D0) = r0; // user RAM ;3
- lodr,r0 *$0152 ;r0 = *(*($0152)); // ROM ;2
- addi,r0 $14 ;r0 += $14; ;2
- stra,r0 $18F9 ;*($18F9) = r0; // user RAM ;3
- lodi,r2 $04 ;r2 = $04; ;2
- bcta,un L00F3 ;goto L00F3; ;3
- ;
- L0159:
- lodi,r0 $DC ;r0 = $DC; ;2
- lodi,r1 $0C ;r1 = $0C; ;2
- stra,r1 VOLUME ;VOLUME = r1; // hardware registers ;3
- L0160:
- bdrr,r1 L0160 ;if (--r1 != 0) goto L0160; ;2
- strz r3 ;r3 = r0; ;1
- rrr,r3 ;r3 >>= 1; ;1
- andi,r3 $7F ;r3 &= %01111111; ;2
- stra,r3 PITCH ;PITCH = r3; // hardware registers ;3
- bdrr,r0 L0160 ;if (--r0 != 0) goto L0160; ;2
- stra,r0 VOLUME ;VOLUME = r0; // hardware registers ;3
- retc,un ;return; ;1
- ;
- L016F:
- lodi,r1 $08 ;r1 = $08; ;2
- L0171:
- loda,r0 $0179,r1 ;r0 = *($0179 + r1); ;3
- stra,r0 $18EF,r1 ;*($18EF + r1) = r0; ;3
- bdrr,r1 L0171 ;if (--r1 != 0) goto L0171; ;2
- X0179:
- retc,un ;return; ;1
- ;
- db $FF, $FF, $78, $50
- db $80, $35, $FF, $FF
- ;
- L0182:
- lodi,r0 $70 ;r0 = $70; ;2
- lodi,r3 $17 ;r3 = $17; ;2
- L0186:
- stra,r0 $18E1 ;*($18E1) = r0; // user RAM ;3
- stra,r3 $18E2 ;*($18E2) = r3; // user RAM ;3
- retc,un ;return; ;1
- ;
- L018D:
- loda,r0 P1LEFTKEYS ;r0 = P1LEFTKEYS; // hardware registers ;3
- iora,r0 P1MIDDLEKEYS ;r0 |= P1MIDDLEKEYS; // hardware registers ;3
- iora,r0 P1RIGHTKEYS ;r0 |= P1RIGHTKEYS; // hardware registers ;3
- andi,r0 $0F ;r0 &= %00001111; ;2
- retc,un ;return; ;1
- ;
- L0199:
- loda,r0 CRTCVPR ;r0 = CRTCVPR; // hardware registers ;3
- comi,r0 $EE ;compare r0 against $EE; ;2
- bctr,gt L01AB ;if > goto L01AB; ;2
- addi,r0 $03 ;r0 += $03; ;2
- strr,r0 *$019A ;*(*($019A)) = r0; // ROM ;2
- eorz r0 ;r0 = 0; ;1
- stra,r0 $18E0 ;*($18E0) = r0; // user RAM ;3
- L01A8:
- bcta,un L0999 ;goto L0999; ;3
- ;
- L01AB:
- bstr,un L018D ;gosub L018D; ;2
- bctr,eq L01B2 ;if == goto L01B2; ;2
- stra,r0 $18D5 ;*($18D5) = r0; // user RAM ;3
- L01B2:
- lodr,r0 *$01B0 ;r0 = *(*($01B0)); // ROM ;2
- bctr,eq L01A8 ;if == goto L01A8; ;2
- lodr,r0 *$01A6 ;r0 = *(*($01A6)); // ROM ;2
- bctr,eq L01C0 ;if == goto L01C0; ;2
- addi,r0 $FF ;r0--; ;2
- strr,r0 *$01A6 ;*(*($01A6)) = r0; // ROM ;2
- bctr,un L01D0 ;goto L01D0; ;2
- ;
- L01C0:
- lodi,r1 $02 ;r1 = $02; ;2
- L01C2:
- loda,r0 $18E0,r1 ;r0 = *($18E0 + r1); ;3
- stra,r0 $18FC,r1 ;*($18FC + r1) = r0; ;3
- bdrr,r1 L01C2 ;if (--r1 != 0) goto L01C2; ;2
- stra,r1 $18E2 ;*($18E2) = r1; // user RAM ;3
- stra,r1 $18E1 ;*($18E1) = r1; // user RAM ;3
- L01D0:
- loda,r0 $1ADE ;r0 = *($1ADE); // user RAM ;3
- bcta,eq L02A2 ;if == goto L02A2; ;3
- addi,r0 $FF ;r0--; ;2
- strr,r0 *$01D1 ;*(*($01D1)) = r0; // ROM ;2
- bcta,eq L0247 ;if == goto L0247; ;3
- rrr,r0 ;r0 >>= 1; ;1
- rrr,r0 ;r0 >>= 1; ;1
- rrr,r0 ;r0 >>= 1; ;1
- rrr,r0 ;r0 >>= 1; ;1
- andi,r0 $0F ;r0 &= %00001111; ;2
- strz r3 ;r3 = r0; ;1
- loda,r0 $021F,r3 ;r0 = *($021F + r3); ;3
- stra,r0 PITCH ;PITCH = r0; // hardware registers ;3
- loda,r0 $020F,r3 ;r0 = *($020F + r3); ;3
- stra,r0 VOLUME ;VOLUME = r0; // hardware registers ;3
- lodi,r0 $04 ;r0 = $04; ;2
- stra,r0 $18E0 ;*($18E0) = r0; // user RAM ;3
- loda,r0 $01FE,r3 ;r0 = *($01FE + r3); ;3
- bsta,un L0FBC ;gosub L0FBC; ;3
- bcta,un L0999 ;goto L0999; ;3
- ;
- X01FE:
- db $08, $08, $08, $08
- db $08, $08, $10, $10
- db $10, $10, $10, $18
- db $18, $18, $18, $18
- db $18
- X020F:
- db $00, $12, $13, $14
- db $15, $16, $17, $17
- db $17, $17, $17, $17
- db $17, $17, $17, $17
- X021F:
- db $00, $01, $02, $03
- db $02, $03, $04, $05
- db $02, $03, $04, $01
- db $01, $02, $02, $01
- db $01
- ;
- L0230:
- lodi,r0 $05 ;r0 = $05; ;2
- L0232:
- stra,r0 $1AFE ;*($1AFE) = r0; // user RAM ;3
- bsta,un L0975 ;gosub L0975; ;3
- lodr,r0 *$0233 ;r0 = *(*($0233)); // ROM ;2
- bdrr,r0 L0232 ;if (--r0 != 0) goto L0232; ;2
- ppsu $40 ;PSU |= %01000000; ;2
- bstr,un *$0241 ;INFO: indirect jump
- ;gosub *($0241);
- ;2
- bsta,un L0159 ;gosub L0159; ;3
- cpsu $40 ;PSU &= %10111111; ;2
- bctr,un L0257 ;goto L0257; ;2
- ;
- L0247:
- loda,r0 $1AF6 ;r0 = *($1AF6); // user RAM ;3
- addi,r0 $01 ;r0++; ;2
- strr,r0 *$0248 ;*(*($0248)) = r0; // ROM ;2
- strz r1 ;r1 = r0; ;1
- eorz r0 ;r0 = 0; ;1
- stra,r0 $1805,r1 ;*($1805 + r1) = r0; ;3
- comi,r1 $04 ;compare r1 against $04; ;2
- bctr,eq L025E ;if == goto L025E; ;2
- L0257:
- lodi,r0 $80 ;r0 = $80; ;2
- stra,r0 $18FA ;*($18FA) = r0; // user RAM ;3
- bctr,un L027C ;goto L027C; ;2
- ;
- L025E:
- eorz r0 ;r0 = 0; ;1
- strr,r0 *$025A ;*(*($025A)) = r0; // ROM ;2
- bsta,un L0FE7 ;gosub L0FE7; ;3
- lodi,r1 $00 ;r1 = $00; ;2
- L0266:
- loda,r0 $180B,r1 ;r0 = *($180B + r1); ;3
- andi,r0 $3F ;r0 &= %00111111; ;2
- strz r3 ;r3 = r0; ;1
- loda,r0 $1800,r1 ;r0 = *($1800 + r1); ;3
- andi,r0 $3F ;r0 &= %00111111; ;2
- comz r3 ;compare r0 against r3; ;1
- bctr,gt L027F ;if > goto L027F; ;2
- bctr,lt L027C ;if < goto L027C; ;2
- addi,r1 $01 ;r1++; ;2
- comi,r1 $04 ;compare r1 against $04; ;2
- bcfr,eq L0266 ;if != goto L0266; ;2
- L027C:
- bcta,un L0999 ;goto L0999; ;3
- ;
- L027F:
- lodi,r1 $04 ;r1 = $04; ;2
- L0281:
- loda,r0 $17FF,r1 ;r0 = *($17FF + r1); ;3
- andi,r0 $3F ;r0 &= %00111111; ;2
- lodi,r2 $0F ;r2 = $0F; ;2
- stra,r2 VOLUME ;VOLUME = r2; // hardware registers ;3
- lodi,r3 $7F ;r3 = $7F; ;2
- L028D:
- bdrr,r2 L028D ;if (--r2 != 0) goto L028D; ;2
- stra,r3 $18D0 ;*($18D0) = r3; // user RAM ;3
- andi,r3 $AA ;r3 &= %10101010; ;2
- stra,r3 PITCH ;PITCH = r3; // hardware registers ;3
- lodr,r3 *$0290 ;r3 = *(*($0290)); // ROM ;2
- bdrr,r3 L028D ;if (--r3 != 0) goto L028D; ;2
- stra,r0 $180A,r1 ;*($180A + r1) = r0; ;3
- bdrr,r1 L0281 ;if (--r1 != 0) goto L0281; ;2
- bctr,un L027C ;goto L027C; ;2
- ;
- L02A2:
- loda,r1 $18ED ;r1 = *($18ED); // user RAM ;3
- andi,r1 $03 ;r1 &= %00000011; ;2
- comi,r1 $01 ;compare r1 against $01; ;2
- bctr,eq L02C5 ;if == goto L02C5; ;2
- loda,r0 $1AFB ;r0 = *($1AFB); // user RAM ;3
- andi,r0 $02 ;r0 &= %00000010; ;2
- bcfr,eq L02C5 ;if != goto L02C5; ;2
- L02B2:
- lodi,r1 $FF ;r1 = $FF; ;2
- stra,r1 $1ADE ;*($1ADE) = r1; // user RAM ;3
- stra,r1 $18E5 ;*($18E5) = r1; // user RAM ;3
- lodi,r1 $04 ;r1 = $04; ;2
- lodi,r0 $01 ;r0 = $01; ;2
- L02BE:
- stra,r0 $1AD9,r1 ;*($1AD9 + r1) = r0; ;3
- bdrr,r1 L02BE ;if (--r1 != 0) goto L02BE; ;2
- bctr,un L02DF ;goto L02DF; ;2
- ;
- L02C5:
- loda,r0 $1AFA ;r0 = *($1AFA); // user RAM ;3
- andi,r0 $04 ;r0 &= %00000100; ;2
- bctr,eq L02B2 ;if == goto L02B2; ;2
- lodr,r0 *$02AC ;r0 = *(*($02AC)); // ROM ;2
- andi,r0 $20 ;r0 &= %00100000; ;2
- bctr,eq L02B2 ;if == goto L02B2; ;2
- loda,r0 $1AEF ;r0 = *($1AEF); // user RAM ;3
- comi,r0 $09 ;compare r0 against $09; ;2
- bcfr,eq L02DF ;if != goto L02DF; ;2
- lodr,r0 *$02AC ;r0 = *(*($02AC)); // ROM ;2
- andi,r0 $08 ;r0 &= %00001000; ;2
- bctr,eq L02B2 ;if == goto L02B2; ;2
- L02DF:
- loda,r0 $18EC ;r0 = *($18EC); // user RAM ;3
- bcta,eq L0335 ;if == goto L0335; ;3
- loda,r0 $18ED ;r0 = *($18ED); // user RAM ;3
- andi,r0 $03 ;r0 &= %00000011; ;2
- comi,r0 $03 ;compare r0 against $03; ;2
- bcfr,eq L030E ;if != goto L030E; ;2
- lodr,r0 *$02E0 ;r0 = *(*($02E0)); // ROM ;2
- addi,r0 $FF ;r0--; ;2
- strr,r0 *$02E0 ;*(*($02E0)) = r0; // ROM ;2
- bctr,eq L030B ;if == goto L030B; ;2
- strz r3 ;r3 = r0; ;1
- loda,r0 $0310,r3 ;r0 = *($0310 + r3); ;3
- bsta,un L0FB4 ;gosub L0FB4; ;3
- loda,r0 $0312,r3 ;r0 = *($0312 + r3); ;3
- stra,r0 $18E1 ;*($18E1) = r0; // user RAM ;3
- loda,r0 $0314,r3 ;r0 = *($0314 + r3); ;3
- stra,r0 $18E2 ;*($18E2) = r0; // user RAM ;3
- bctr,un L030E ;goto L030E; ;2
- ;
- L030B:
- bsta,un L040C ;gosub L040C; ;3
- L030E:
- bcta,un L03D0 ;goto L03D0; ;3
- ;
- db $10
- X0312:
- db $08, $74
- X0314:
- db $75, $13, $0D
- ;
- L0317:
- loda,r0 $18ED ;r0 = *($18ED); // user RAM ;3
- andi,r0 $03 ;r0 &= %00000011; ;2
- comi,r0 $01 ;compare r0 against $01; ;2
- bcfr,eq L030E ;if != goto L030E; ;2
- loda,r0 $1AFB ;r0 = *($1AFB); // user RAM ;3
- andi,r0 $04 ;r0 &= %00000100; ;2
- bcfr,eq L030E ;if != goto L030E; ;2
- loda,r1 $1AD9 ;r1 = *($1AD9); // user RAM ;3
- lodi,r0 $FF ;r0 = $FF; ;2
- stra,r0 $1AE1,r1 ;*($1AE1 + r1) = r0; ;3
- stra,r0 SPRITE3X ;SPRITE3X = r0; // hardware registers ;3
- bcta,un L036B ;goto L036B; ;3
- ;
- L0335:
- loda,r0 $1ADA ;r0 = *($1ADA); // user RAM ;3
- bctr,eq L030E ;if == goto L030E; ;2
- loda,r0 $18E4 ;r0 = *($18E4); // user RAM ;3
- loda,r1 $18E5 ;r1 = *($18E5); // user RAM ;3
- bsta,un L05D0 ;gosub L05D0; ;3
- comi,r0 $FF ;compare r0 against $FF; ;2
- bctr,eq L0354 ;if == goto L0354; ;2
- comi,r1 $FF ;compare r1 against $FF; ;2
- bctr,eq L0359 ;if == goto L0359; ;2
- loda,r0 $1A00,r1 ;r0 = *($1A00 + r1); ;3
- comi,r0 $BC ;compare r0 against $BC; ;2
- bctr,eq L0362 ;if == goto L0362; ;2
- L0352:
- comi,r0 $3F ;compare r0 against $3F; ;2
- L0354:
- bctr,eq L038C ;if == goto L038C; ;2
- bcta,un L0317 ;goto L0317; ;3
- ;
- L0359:
- loda,r0 $1800,r2 ;r0 = *($1800 + r2); ;3
- comi,r0 $BC ;compare r0 against $BC; ;2
- bctr,eq L0394 ;if == goto L0394; ;2
- bctr,un L0352 ;goto L0352; ;2
- ;
- L0362:
- eorz r0 ;r0 = 0; ;1
- stra,r0 $1A00,r1 ;*($1A00 + r1) = r0; ;3
- lodz r1 ;r0 = r1; ;1
- bstr,un L039F ;gosub L039F; ;2
- bcfr,eq L0370 ;if != goto L0370; ;2
- L036B:
- lodi,r0 $FF ;r0 = $FF; ;2
- stra,r0 $1AE0,r1 ;*($1AE0 + r1) = r0; ;3
- L0370:
- loda,r0 $18D7 ;r0 = *($18D7); // user RAM ;3
- addi,r0 $01 ;r0++; ;2
- loda,r1 $1AF4 ;r1 = *($1AF4); // user RAM ;3
- andi,r1 $03 ;r1 &= %00000011; ;2
- coma,r0 $03CC,r1 ;compare r0 against *($03CC + r1); ;3
- strr,r0 *$0371 ;*(*($0371)) = r0; // ROM ;2
- bcfr,eq L0385 ;if != goto L0385; ;2
- lodi,r0 $0C ;r0 = $0C; ;2
- bctr,un L0387 ;goto L0387; ;2
- ;
- L0385:
- lodi,r0 $02 ;r0 = $02; ;2
- L0387:
- adda,r0 $1AF7 ;r0 += *($1AF7); // user RAM ;3
- strr,r0 *$0388 ;*(*($0388)) = r0; // ROM ;2
- L038C:
- lodi,r0 $03 ;r0 = $03; ;2
- stra,r0 $18EC ;*($18EC) = r0; // user RAM ;3
- bcta,un L03D0 ;goto L03D0; ;3
- ;
- L0394:
- eorz r0 ;r0 = 0; ;1
- stra,r0 $1800,r2 ;*($1800 + r2) = r0; ;3
- lodz r2 ;r0 = r2; ;1
- bstr,un L03B5 ;gosub L03B5; ;2
- bcfr,eq L0370 ;if != goto L0370; ;2
- bctr,un L036B ;goto L036B; ;2
- ;
- L039F:
- lodi,r1 $08 ;r1 = $08; ;2
- L03A1:
- coma,r0 $1AE0,r1 ;compare r0 against *($1AE0 + r1); ;3
- bctr,eq L03AA ;if == goto L03AA; ;2
- L03A6:
- bdrr,r1 L03A1 ;if (--r1 != 0) goto L03A1; ;2
- bctr,un L03BE ;goto L03BE; ;2
- ;
- L03AA:
- strz r3 ;r3 = r0; ;1
- loda,r0 $0FDE,r1 ;r0 = *($0FDE + r1); ;3
- anda,r0 $18D8 ;r0 &= *($18D8); // user RAM ;3
- bctr,eq L03A6 ;if == goto L03A6; ;2
- bctr,un L03CA ;goto L03CA; ;2
- ;
- L03B5:
- lodi,r1 $08 ;r1 = $08; ;2
- L03B7:
- coma,r0 $1AE0,r1 ;compare r0 against *($1AE0 + r1); ;3
- bctr,eq L03C1 ;if == goto L03C1; ;2
- L03BC:
- bdrr,r1 L03B7 ;if (--r1 != 0) goto L03B7; ;2
- L03BE:
- iori,r0 $01 ;r0 |= %00000001; ;2
- retc,un ;return; ;1
- ;
- L03C1:
- strz r3 ;r3 = r0; ;1
- loda,r0 $0FDE,r1 ;r0 = *($0FDE + r1); ;3
- anda,r0 $18D8 ;r0 &= *($18D8); // user RAM ;3
- bcfr,eq L03BC ;if != goto L03BC; ;2
- L03CA:
- eorz r0 ;r0 = 0; ;1
- retc,un ;return; ;1
- ;
- X03CC:
- db $08, $0C, $10, $14
- ;
- L03D0:
- loda,r0 $18EC ;r0 = *($18EC); // user RAM ;3
- bcfa,eq L043B ;if != goto L043B; ;3
- loda,r0 $1ADA ;r0 = *($1ADA); // user RAM ;3
- bcta,eq L041A ;if == goto L041A; ;3
- addi,r0 $FF ;r0--; ;2
- strr,r0 *$03D7 ;*(*($03D7)) = r0; // ROM ;2
- bctr,eq L0416 ;if == goto L0416; ;2
- loda,r1 $1AE9 ;r1 = *($1AE9); // user RAM ;3
- loda,r0 $18E4 ;r0 = *($18E4); // user RAM ;3
- adda,r0 $04B0,r1 ;r0 += *($04B0 + r1); ;3
- stra,r0 $18E4 ;*($18E4) = r0; // user RAM ;3
- loda,r0 $18E5 ;r0 = *($18E5); // user RAM ;3
- adda,r0 $04AE,r1 ;r0 += *($04AE + r1); ;3
- stra,r0 $18E5 ;*($18E5) = r0; // user RAM ;3
- comi,r0 $A6 ;compare r0 against $A6; ;2
- bctr,gt L0416 ;if > goto L0416; ;2
- lodi,r0 $88 ;r0 = $88; ;2
- bsta,un L0FB4 ;gosub L0FB4; ;3
- lodi,r0 $04 ;r0 = $04; ;2
- stra,r0 $18E1 ;*($18E1) = r0; // user RAM ;3
- lodi,r0 $17 ;r0 = $17; ;2
- stra,r0 $18E2 ;*($18E2) = r0; // user RAM ;3
- bctr,un L043B ;goto L043B; ;2
- ;
- L040C:
- lodi,r0 $FF ;r0 = $FF; ;2
- stra,r0 $18E5 ;*($18E5) = r0; // user RAM ;3
- eorz r0 ;r0 = 0; ;1
- stra,r0 $1ADA ;*($1ADA) = r0; // user RAM ;3
- retc,un ;return; ;1
- ;
- L0416:
- bstr,un L040C ;gosub L040C; ;2
- bctr,un L043B ;goto L043B; ;2
- ;
- L041A:
- bsta,un L018D ;gosub L018D; ;3
- bctr,eq L043B ;if == goto L043B; ;2
- loda,r0 $1AED ;r0 = *($1AED); // user RAM ;3
- comi,r0 $08 ;compare r0 against $08; ;2
- bcfr,lt L043B ;if >= goto L043B; ;2
- lodi,r0 $FF ;r0 = $FF; ;2
- strr,r0 *$0413 ;*(*($0413)) = r0; // ROM ;2
- loda,r1 $1AED ;r1 = *($1AED); // user RAM ;3
- stra,r1 $1AE9 ;*($1AE9) = r1; // user RAM ;3
- loda,r0 SPRITE2Y ;r0 = SPRITE2Y; // hardware registers ;3
- stra,r0 $18E4 ;*($18E4) = r0; // user RAM ;3
- loda,r0 SPRITE2X ;r0 = SPRITE2X; // hardware registers ;3
- strr,r0 *$040F ;*(*($040F)) = r0; // ROM ;2
- L043B:
- loda,r0 $18FB ;r0 = *($18FB); // user RAM ;3
- bcta,eq L0672 ;if == goto L0672; ;3
- loda,r0 $1ADB ;r0 = *($1ADB); // user RAM ;3
- bcta,eq L0485 ;if == goto L0485; ;3
- addi,r0 $FF ;r0--; ;2
- strr,r0 *$0442 ;*(*($0442)) = r0; // ROM ;2
- bcta,eq L047E ;if == goto L047E; ;3
- loda,r0 $18ED ;r0 = *($18ED); // user RAM ;3
- andi,r0 $01 ;r0 &= %00000001; ;2
- comi,r0 $01 ;compare r0 against $01; ;2
- bcfr,eq L047C ;if != goto L047C; ;2
- loda,r1 $1AEA ;r1 = *($1AEA); // user RAM ;3
- loda,r0 $18E6 ;r0 = *($18E6); // user RAM ;3
- adda,r0 $04B0,r1 ;r0 += *($04B0 + r1); ;3
- strr,r0 *$045B ;*(*($045B)) = r0; // ROM ;2
- loda,r0 $18E7 ;r0 = *($18E7); // user RAM ;3
- adda,r0 $04AE,r1 ;r0 += *($04AE + r1); ;3
- strr,r0 *$0463 ;*(*($0463)) = r0; // ROM ;2
- strz r1 ;r1 = r0; ;1
- lodr,r0 *$045B ;r0 = *(*($045B)); // ROM ;2
- bsta,un L05A0 ;gosub L05A0; ;3
- bctr,eq L047E ;if == goto L047E; ;2
- lodi,r0 $01 ;r0 = $01; ;2
- stra,r0 $18E1 ;*($18E1) = r0; // user RAM ;3
- lodi,r0 $0D ;r0 = $0D; ;2
- stra,r0 $18E2 ;*($18E2) = r0; // user RAM ;3
- L047C:
- bctr,un L04AC ;goto L04AC; ;2
- ;
- L047E:
- lodi,r0 $FF ;r0 = $FF; ;2
- strr,r0 *$0463 ;*(*($0463)) = r0; // ROM ;2
- eorz r0 ;r0 = 0; ;1
- bctr,un L04A9 ;goto L04A9; ;2
- ;
- L0485:
- loda,r0 $18D6 ;r0 = *($18D6); // user RAM ;3
- loda,r1 $1AF4 ;r1 = *($1AF4); // user RAM ;3
- tmi,r1 $04 ;test bits %00000100 of r1; ;2
- bcfr,eq L0493 ;if != goto L0493; ;2
- andi,r0 $70 ;r0 &= %01110000; ;2
- bctr,un L0495 ;goto L0495; ;2
- ;
- L0493:
- andi,r0 $F0 ;r0 &= %11110000; ;2
- L0495:
- comi,r0 $30 ;compare r0 against $30; ;2
- bcfr,eq L04B9 ;if != goto L04B9; ;2
- bsta,un L05FC ;gosub L05FC; ;3
- bctr,eq L04B9 ;if == goto L04B9; ;2
- stra,r1 $18E6 ;*($18E6) = r1; // user RAM ;3
- stra,r2 $18E7 ;*($18E7) = r2; // user RAM ;3
- stra,r0 $1AEA ;*($1AEA) = r0; // user RAM ;3
- lodi,r0 $7F ;r0 = $7F; ;2
- L04A9:
- stra,r0 $1ADB ;*($1ADB) = r0; // user RAM ;3
- L04AC:
- bctr,un L04B9 ;goto L04B9; ;2
- ;
- X04AE:
- db $00, $01
- X04B0:
- db $01, $01, $00, $FF
- db $FF, $FF, $00, $01
- db $01
- ;
- L04B9:
- loda,r0 $18FB ;r0 = *($18FB); // user RAM ;3
- comi,r0 $02 ;compare r0 against $02; ;2
- bcta,lt L0672 ;if < goto L0672; ;3
- loda,r0 $1ADC ;r0 = *($1ADC); // user RAM ;3
- bcta,eq L0505 ;if == goto L0505; ;3
- addi,r0 $FF ;r0--; ;2
- strr,r0 *$04C2 ;*(*($04C2)) = r0; // ROM ;2
- bcta,eq L04FD ;if == goto L04FD; ;3
- loda,r0 $18ED ;r0 = *($18ED); // user RAM ;3
- andi,r0 $03 ;r0 &= %00000011; ;2
- comi,r0 $01 ;compare r0 against $01; ;2
- bcfr,eq L04FB ;if != goto L04FB; ;2
- loda,r1 $1AEB ;r1 = *($1AEB); // user RAM ;3
- lodr,r0 *$04EA ;r0 = *(*($04EA)); // ROM ;2
- adda,r0 $04B0,r1 ;r0 += *($04B0 + r1); ;3
- strr,r0 *$04EA ;*(*($04EA)) = r0; // ROM ;2
- lodr,r0 *$0500 ;r0 = *(*($0500)); // ROM ;2
- adda,r0 $04AE,r1 ;r0 += *($04AE + r1); ;3
- strr,r0 *$0500 ;*(*($0500)) = r0; // ROM ;2
- strz r1 ;r1 = r0; ;1
- loda,r0 $18E8 ;r0 = *($18E8); // user RAM ;3
- bsta,un L05A0 ;gosub L05A0; ;3
- bctr,eq L04FD ;if == goto L04FD; ;2
- lodi,r0 $01 ;r0 = $01; ;2
- stra,r0 $18E1 ;*($18E1) = r0; // user RAM ;3
- lodi,r0 $0D ;r0 = $0D; ;2
- stra,r0 $18E2 ;*($18E2) = r0; // user RAM ;3
- L04FB:
- bctr,un L052B ;goto L052B; ;2
- ;
- L04FD:
- lodi,r0 $FF ;r0 = $FF; ;2
- stra,r0 $18E9 ;*($18E9) = r0; // user RAM ;3
- eorz r0 ;r0 = 0; ;1
- bctr,un L0528 ;goto L0528; ;2
- ;
- L0505:
- loda,r0 $18D6 ;r0 = *($18D6); // user RAM ;3
- loda,r1 $1AF4 ;r1 = *($1AF4); // user RAM ;3
- tmi,r1 $04 ;test bits %00000100 of r1; ;2
- bcfr,eq L0513 ;if != goto L0513; ;2
- andi,r0 $70 ;r0 &= %01110000; ;2
- bctr,un L0515 ;goto L0515; ;2
- ;
- L0513:
- andi,r0 $F0 ;r0 &= %11110000; ;2
- L0515:
- comi,r0 $00 ;compare r0 against $00; ;2
- bcfr,eq L052B ;if != goto L052B; ;2
- bsta,un L05FC ;gosub L05FC; ;3
- bctr,eq L052B ;if == goto L052B; ;2
- strr,r1 *$04EA ;*(*($04EA)) = r1; // ROM ;2
- stra,r2 $18E9 ;*($18E9) = r2; // user RAM ;3
- stra,r0 $1AEB ;*($1AEB) = r0; // user RAM ;3
- lodi,r0 $7F ;r0 = $7F; ;2
- L0528:
- stra,r0 $1ADC ;*($1ADC) = r0; // user RAM ;3
- L052B:
- loda,r0 $18FB ;r0 = *($18FB); // user RAM ;3
- comi,r0 $03 ;compare r0 against $03; ;2
- bcta,lt L0672 ;if < goto L0672; ;3
- loda,r0 $1ADD ;r0 = *($1ADD); // user RAM ;3
- bcta,eq L0577 ;if == goto L0577; ;3
- addi,r0 $FF ;r0--; ;2
- strr,r0 *$0534 ;*(*($0534)) = r0; // ROM ;2
- bctr,eq L056F ;if == goto L056F; ;2
- loda,r0 $18ED ;r0 = *($18ED); // user RAM ;3
- andi,r0 $03 ;r0 &= %00000011; ;2
- comi,r0 $02 ;compare r0 against $02; ;2
- bcfr,eq L056C ;if != goto L056C; ;2
- loda,r1 $1AEC ;r1 = *($1AEC); // user RAM ;3
- lodr,r0 *$055B ;r0 = *(*($055B)); // ROM ;2
- adda,r0 $04B0,r1 ;r0 += *($04B0 + r1); ;3
- strr,r0 *$055B ;*(*($055B)) = r0; // ROM ;2
- lodr,r0 *$0572 ;r0 = *(*($0572)); // ROM ;2
- adda,r0 $04AE,r1 ;r0 += *($04AE + r1); ;3
- strr,r0 *$0572 ;*(*($0572)) = r0; // ROM ;2
- strz r1 ;r1 = r0; ;1
- loda,r0 $18EA ;r0 = *($18EA); // user RAM ;3
- bsta,un L05A0 ;gosub L05A0; ;3
- bctr,eq L056F ;if == goto L056F; ;2
- lodi,r0 $01 ;r0 = $01; ;2
- stra,r0 $18E1 ;*($18E1) = r0; // user RAM ;3
- lodi,r0 $0D ;r0 = $0D; ;2
- stra,r0 $18E2 ;*($18E2) = r0; // user RAM ;3
- L056C:
- bcta,un L0672 ;goto L0672; ;3
- ;
- L056F:
- lodi,r0 $FF ;r0 = $FF; ;2
- stra,r0 $18EB ;*($18EB) = r0; // user RAM ;3
- eorz r0 ;r0 = 0; ;1
- bctr,un L059B ;goto L059B; ;2
- ;
- L0577:
- loda,r0 $18D6 ;r0 = *($18D6); // user RAM ;3
- loda,r1 $1AF4 ;r1 = *($1AF4); // user RAM ;3
- tmi,r1 $04 ;test bits %00000100 of r1; ;2
- bcfr,eq L0585 ;if != goto L0585; ;2
- andi,r0 $70 ;r0 &= %01110000; ;2
- bctr,un L0587 ;goto L0587; ;2
- ;
- L0585:
- andi,r0 $F0 ;r0 &= %11110000; ;2
- L0587:
- comi,r0 $50 ;compare r0 against $50; ;2
- bcfr,eq L056C ;if != goto L056C; ;2
- bsta,un L05FC ;gosub L05FC; ;3
- bctr,eq L056C ;if == goto L056C; ;2
- stra,r1 $18EA ;*($18EA) = r1; // user RAM ;3
- stra,r2 $18EB ;*($18EB) = r2; // user RAM ;3
- stra,r0 $1AEC ;*($1AEC) = r0; // user RAM ;3
- lodi,r0 $FF ;r0 = $FF; ;2
- L059B:
- stra,r0 $1ADD ;*($1ADD) = r0; // user RAM ;3
- bctr,un L056C ;goto L056C; ;2
- ;
- L05A0:
- bsta,un L05D0 ;gosub L05D0; ;3
- comi,r0 $FF ;compare r0 against $FF; ;2
- bctr,eq L05B7 ;if == goto L05B7; ;2
- comi,r1 $FF ;compare r1 against $FF; ;2
- bctr,eq L05B1 ;if == goto L05B1; ;2
- loda,r0 $1A00,r1 ;r0 = *($1A00 + r1); ;3
- comi,r0 $3F ;compare r0 against $3F; ;2
- retc,un ;return; ;1
- ;
- L05B1:
- loda,r0 $1800,r2 ;r0 = *($1800 + r2); ;3
- comi,r0 $3F ;compare r0 against $3F; ;2
- retc,un ;return; ;1
- ;
- L05B7:
- eorz r0 ;r0 = 0; ;1
- retc,un ;return; ;1
- ;
- L05B9:
- lodz r1 ;r0 = r1; ;1
- rrl,r0 ;r0 <<= 1; ;1
- rrl,r0 ;r0 <<= 1; ;1
- rrl,r0 ;r0 <<= 1; ;1
- andi,r0 $78 ;r0 &= %01111000; ;2
- subi,r0 $D5 ;r0 -= $D5; ;2
- strz r3 ;r3 = r0; ;1
- lodz r1 ;r0 = r1; ;1
- andi,r0 $F0 ;r0 &= %11110000; ;2
- rrr,r0 ;r0 >>= 1; ;1
- addz r2 ;r0 += r2; ;1
- eori,r0 $FF ;r0 ^= %11111111; ;2
- addi,r0 $02 ;r0 += $02; ;2
- strz r2 ;r2 = r0; ;1
- lodz r3 ;r0 = r3; ;1
- strz r1 ;r1 = r0; ;1
- lodz r2 ;r0 = r2; ;1
- retc,un ;return; ;1
- ;
- L05D0:
- comi,r1 $B7 ;compare r1 against $B7; ;2
- bcta,gt L05F9 ;if > goto L05F9; ;3
- addi,r1 $D7 ;r1 += $D7; ;2
- rrr,r1 ;r1 >>= 1; ;1
- rrr,r1 ;r1 >>= 1; ;1
- rrr,r1 ;r1 >>= 1; ;1
- andi,r1 $0F ;r1 &= %00001111; ;2
- eori,r0 $FF ;r0 ^= %11111111; ;2
- adda,r0 CRTCVPR ;r0 += CRTCVPR; // hardware registers ;3
- comi,r0 $62 ;compare r0 against $62; ;2
- bctr,gt L05EF ;if > goto L05EF; ;2
- addi,r0 $05 ;r0 += $05; ;2
- rrl,r0 ;r0 <<= 1; ;1
- andi,r0 $F0 ;r0 &= %11110000; ;2
- iorz r1 ;r0 |= r1; ;1
- strz r2 ;r2 = r0; ;1
- lodi,r1 $FF ;r1 = $FF; ;2
- retc,un ;return; ;1
- ;
- L05EF:
- addi,r0 $9E ;r0 += $9E; ;2
- rrl,r0 ;r0 <<= 1; ;1
- andi,r0 $F0 ;r0 &= %11110000; ;2
- iorz r1 ;r0 |= r1; ;1
- strz r1 ;r1 = r0; ;1
- lodi,r2 $FF ;r2 = $FF; ;2
- retc,un ;return; ;1
- ;
- L05F9:
- lodi,r0 $FF ;r0 = $FF; ;2
- retc,un ;return; ;1
- ;
- L05FC:
- loda,r2 $18ED ;r2 = *($18ED); // user RAM ;3
- addz r2 ;r0 += r2; ;1
- andi,r0 $07 ;r0 &= %00000111; ;2
- strz r2 ;r2 = r0; ;1
- stra,r2 $18D0 ;*($18D0) = r2; // user RAM ;3
- loda,r0 SPRITE2Y ;r0 = SPRITE2Y; // hardware registers ;3
- stra,r0 $18D1 ;*($18D1) = r0; // user RAM ;3
- loda,r0 SPRITE2X ;r0 = SPRITE2X; // hardware registers ;3
- stra,r0 $18D2 ;*($18D2) = r0; // user RAM ;3
- L0612:
- loda,r2 $18D0 ;r2 = *($18D0); // user RAM ;3
- loda,r0 $18D1 ;r0 = *($18D1); // user RAM ;3
- adda,r0 $0657,r2 ;r0 += *($0657 + r2); ;3
- stra,r0 $18D1 ;*($18D1) = r0; // user RAM ;3
- lodr,r0 *$0610 ;r0 = *(*($0610)); // ROM ;2
- adda,r0 $0655,r2 ;r0 += *($0655 + r2); ;3
- strr,r0 *$0610 ;*(*($0610)) = r0; // ROM ;2
- loda,r0 $18D1 ;r0 = *($18D1); // user RAM ;3
- lodr,r1 *$0610 ;r1 = *(*($0610)); // ROM ;2
- bsta,un L05D0 ;gosub L05D0; ;3
- comi,r1 $FF ;compare r1 against $FF; ;2
- bctr,eq L064A ;if == goto L064A; ;2
- loda,r0 $1A00,r1 ;r0 = *($1A00 + r1); ;3
- bctr,eq L063C ;if == goto L063C; ;2
- comi,r0 $BC ;compare r0 against $BC; ;2
- bctr,eq L063E ;if == goto L063E; ;2
- bctr,un L0653 ;goto L0653; ;2
- L063C:
- bctr,un L0612 ;goto L0612; ;2
- ;
- L063E:
- loda,r2 $18D0 ;r2 = *($18D0); // user RAM ;3
- loda,r0 $0660,r2 ;r0 = *($0660 + r2); ;3
- loda,r1 $18D1 ;r1 = *($18D1); // user RAM ;3
- lodr,r2 *$0610 ;r2 = *(*($0610)); // ROM ;2
- retc,un ;return; ;1
- ;
- L064A:
- loda,r0 $1800,r2 ;r0 = *($1800 + r2); ;3
- bctr,eq L063C ;if == goto L063C; ;2
- comi,r0 $BC ;compare r0 against $BC; ;2
- bctr,eq L063E ;if == goto L063E; ;2
- L0653:
- eorz r0 ;r0 = 0; ;1
- retc,un ;return; ;1
- ;
- X0655:
- db $00, $08
- X0657:
- db $08, $08, $00, $F8
- db $F8, $F8, $00, $08
- db $00
- X0660:
- db $04, $05, $06, $07
- db $00, $01, $02, $03
- db $08
- X0669:
- db $C8, $E0, $E0, $E0
- db $D0, $D8, $D8, $D8
- db $20
- ;
- L0672:
- loda,r0 $1ADE ;r0 = *($1ADE); // user RAM ;3
- bcfa,eq L0730 ;if != goto L0730; ;3
- loda,r0 $1ADA ;r0 = *($1ADA); // user RAM ;3
- comi,r0 $F7 ;compare r0 against $F7; ;2
- bctr,lt L068B ;if < goto L068B; ;2
- loda,r1 $1AE9 ;r1 = *($1AE9); // user RAM ;3
- loda,r0 $0669,r1 ;r0 = *($0669 + r1); ;3
- bsta,un L0FBC ;gosub L0FBC; ;3
- bcta,un L0730 ;goto L0730; ;3
- ;
- L068B:
- loda,r0 $1AFC ;r0 = *($1AFC); // user RAM ;3
- lodi,r2 $01 ;r2 = $01; ;2
- comi,r0 $30 ;compare r0 against $30; ;2
- bctr,lt L069C ;if < goto L069C; ;2
- lodi,r2 $02 ;r2 = $02; ;2
- comi,r0 $A0 ;compare r0 against $A0; ;2
- bctr,gt L069C ;if > goto L069C; ;2
- lodi,r2 $00 ;r2 = $00; ;2
- L069C:
- loda,r0 $1AFD ;r0 = *($1AFD); // user RAM ;3
- comi,r0 $30 ;compare r0 against $30; ;2
- bcta,lt L0716 ;if < goto L0716; ;3
- comi,r0 $A0 ;compare r0 against $A0; ;2
- bcta,gt L0718 ;if > goto L0718; ;3
- L06A9:
- loda,r0 $071D,r2 ;r0 = *($071D + r2); ;3
- stra,r0 $1AED ;*($1AED) = r0; // user RAM ;3
- comi,r0 $08 ;compare r0 against $08; ;2
- bcfr,eq L06BB ;if != goto L06BB; ;2
- lodi,r0 $20 ;r0 = $20; ;2
- bsta,un L0FBC ;gosub L0FBC; ;3
- bcta,un L0713 ;goto L0713; ;3
- ;
- L06BB:
- loda,r0 $18ED ;r0 = *($18ED); // user RAM ;3
- andi,r0 $07 ;r0 &= %00000111; ;2
- bcfr,eq L06E8 ;if != goto L06E8; ;2
- loda,r0 $18ED ;r0 = *($18ED); // user RAM ;3
- rrr,r0 ;r0 >>= 1; ;1
- rrr,r0 ;r0 >>= 1; ;1
- rrr,r0 ;r0 >>= 1; ;1
- andi,r0 $07 ;r0 &= %00000111; ;2
- strz r2 ;r2 = r0; ;1
- comi,r2 $05 ;compare r2 against $05; ;2
- bctr,eq L06D3 ;if == goto L06D3; ;2
- comi,r2 $02 ;compare r2 against $02; ;2
- bcfr,eq L06DA ;if != goto L06DA; ;2
- L06D3:
- lodi,r0 $7E ;r0 = $7E; ;2
- lodi,r3 $1F ;r3 = $1F; ;2
- bsta,un L0186 ;gosub L0186; ;3
- L06DA:
- lodz r2 ;r0 = r2; ;1
- loda,r1 $1AED ;r1 = *($1AED); // user RAM ;3
- rrl,r1 ;r1 <<= 1; ;1
- rrl,r1 ;r1 <<= 1; ;1
- rrl,r1 ;r1 <<= 1; ;1
- iorz r1 ;r0 |= r1; ;1
- loda,r0 $0E00,r0 ;r0 = *($0E00 + r0); ;3
- bsta,un L0FBC ;gosub L0FBC; ;3
- L06E8:
- loda,r0 $18D3 ;r0 = *($18D3); // user RAM ;3
- addi,r0 $01 ;r0++; ;2
- comi,r0 $07 ;compare r0 against $07; ;2
- strr,r0 *$06E9 ;*(*($06E9)) = r0; // ROM ;2
- bcfr,eq L0713 ;if != goto L0713; ;2
- eorz r0 ;r0 = 0; ;1
- strr,r0 *$06E9 ;*(*($06E9)) = r0; // ROM ;2
- loda,r1 $1AED ;r1 = *($1AED); // user RAM ;3
- loda,r0 SPRITE2Y ;r0 = SPRITE2Y; // hardware registers ;3
- adda,r0 $04B0,r1 ;r0 += *($04B0 + r1); ;3
- adda,r0 $04B0,r1 ;r0 += *($04B0 + r1); ;3
- stra,r0 SPRITE2Y ;SPRITE2Y = r0; // hardware registers ;3
- loda,r0 SPRITE2X ;r0 = SPRITE2X; // hardware registers ;3
- adda,r0 $04AE,r1 ;r0 += *($04AE + r1); ;3
- stra,r0 SPRITE2X ;SPRITE2X = r0; // hardware registers ;3
- comi,r0 $A7 ;compare r0 against $A7; ;2
- bcta,gt L0230 ;if > goto L0230; ;3
- L0713:
- bcta,un L0730 ;goto L0730; ;3
- ;
- L0716:
- addi,r2 $04 ;r2 += $04; ;2
- L0718:
- addi,r2 $04 ;r2 += $04; ;2
- bcta,un L06A9 ;goto L06A9; ;3
- ;
- X071D:
- db $08, $00, $04, $08
- db $02, $01, $03, $08
- db $06, $07, $05, $08
- db $08, $08, $08, $08
- db $08, $08, $08
- ;
- L0730:
- loda,r0 $1AEF ;r0 = *($1AEF); // user RAM ;3
- comi,r0 $09 ;compare r0 against $09; ;2
- bctr,eq L0757 ;if == goto L0757; ;2
- loda,r1 $18ED ;r1 = *($18ED); // user RAM ;3
- bcfr,eq L0754 ;if != goto L0754; ;2
- addi,r0 $01 ;r0++; ;2
- stra,r0 $1AEF ;*($1AEF) = r0; // user RAM ;3
- comi,r0 $05 ;compare r0 against $05; ;2
- bctr,lt L0754 ;if < goto L0754; ;2
- subi,r0 $05 ;r0 -= $05; ;2
- loda,r0 $07BE,r0 ;r0 = *($07BE + r0); ;3
- bsta,un L0FB8 ;gosub L0FB8; ;3
- lodi,r0 $0A ;r0 = $0A; ;2
- lodi,r3 $0D ;r3 = $0D; ;2
- bsta,un L0186 ;gosub L0186; ;3
- L0754:
- bcta,un L07D0 ;goto L07D0; ;3
- ;
- L0757:
- loda,r0 SPRITE1Y ;r0 = SPRITE1Y; // hardware registers ;3
- lodr,r1 *$078F ;r1 = *(*($078F)); // ROM ;2
- andi,r1 $40 ;r1 &= %01000000; ;2
- bctr,eq L0764 ;if == goto L0764; ;2
- addi,r0 $01 ;r0++; ;2
- bctr,un L0766 ;goto L0766; ;2
- ;
- L0764:
- addi,r0 $FF ;r0--; ;2
- L0766:
- stra,r0 SPRITE1Y ;SPRITE1Y = r0; // hardware registers ;3
- lodr,r0 *$078F ;r0 = *(*($078F)); // ROM ;2
- andi,r0 $03 ;r0 &= %00000011; ;2
- bcfr,eq L0754 ;if != goto L0754; ;2
- lodr,r0 *$078F ;r0 = *(*($078F)); // ROM ;2
- strz r1 ;r1 = r0; ;1
- andi,r0 $07 ;r0 &= %00000111; ;2
- bcfr,eq L078E ;if != goto L078E; ;2
- andi,r1 $38 ;r1 &= %00111000; ;2
- rrr,r1 ;r1 >>= 1; ;1
- rrr,r1 ;r1 >>= 1; ;1
- rrr,r1 ;r1 >>= 1; ;1
- loda,r0 $07C3,r1 ;r0 = *($07C3 + r1); ;3
- bsta,un L0FB8 ;gosub L0FB8; ;3
- lodr,r1 *$078F ;r1 = *(*($078F)); // ROM ;2
- andi,r1 $3F ;r1 &= %00111111; ;2
- bcfr,eq L078E ;if != goto L078E; ;2
- lodi,r0 $20 ;r0 = $20; ;2
- lodi,r3 $0D ;r3 = $0D; ;2
- bsta,un L0186 ;gosub L0186; ;3
- L078E:
- loda,r1 $18ED ;r1 = *($18ED); // user RAM ;3
- andi,r1 $0F ;r1 &= %00001111; ;2
- bcfa,eq L0754 ;if != goto L0754; ;3
- loda,r0 SPRITE1Y ;r0 = SPRITE1Y; // hardware registers ;3
- coma,r0 SPRITE2Y ;compare r0 against SPRITE2Y; // hardware registers
- ;3
- bctr,gt L07A2 ;if > goto L07A2; ;2
- lodi,r2 $01 ;r2 = $01; ;2
- bctr,un L07A4 ;goto L07A4; ;2
- ;
- L07A2:
- lodi,r2 $FF ;r2 = $FF; ;2
- L07A4:
- lodr,r0 *$0797 ;r0 = *(*($0797)); // ROM ;2
- addz r2 ;r0 += r2; ;1
- strr,r0 *$0797 ;*(*($0797)) = r0; // ROM ;2
- loda,r0 SPRITE1X ;r0 = SPRITE1X; // hardware registers ;3
- coma,r0 SPRITE2X ;compare r0 against SPRITE2X; // hardware registers
- ;3
- bctr,gt L07B5 ;if > goto L07B5; ;2
- lodi,r2 $01 ;r2 = $01; ;2
- bctr,un L07B7 ;goto L07B7; ;2
- ;
- L07B5:
- lodi,r2 $FF ;r2 = $FF; ;2
- L07B7:
- lodr,r0 *$07AA ;r0 = *(*($07AA)); // ROM ;2
- addz r2 ;r0 += r2; ;1
- strr,r0 *$07AA ;*(*($07AA)) = r0; // ROM ;2
- bctr,un L07D0 ;goto L07D0; ;2
- ;
- X07BE:
- db $28, $30, $38, $40
- db $40
- X07C3:
- db $60, $58, $50, $48
- db $60, $58, $50, $48
- db $48
- X07CC:
- db $08, $10, $18, $20
- ;
- L07D0:
- lodr,r0 *$07E5 ;r0 = *(*($07E5)); // ROM ;2
- strz r1 ;r1 = r0; ;1
- andi,r0 $07 ;r0 &= %00000111; ;2
- comi,r0 $03 ;compare r0 against $03; ;2
- bcfr,eq L07E4 ;if != goto L07E4; ;2
- andi,r1 $18 ;r1 &= %00011000; ;2
- rrr,r1 ;r1 >>= 1; ;1
- rrr,r1 ;r1 >>= 1; ;1
- rrr,r1 ;r1 >>= 1; ;1
- loda,r0 $07CC,r1 ;r0 = *($07CC + r1); ;3
- bsta,un L0FC4 ;gosub L0FC4; ;3
- L07E4:
- loda,r0 $18ED ;r0 = *($18ED); // user RAM ;3
- andi,r0 $3F ;r0 &= %00111111; ;2
- comi,r0 $01 ;compare r0 against $01; ;2
- bcta,eq L089E ;if == goto L089E; ;3
- loda,r1 $1AD9 ;r1 = *($1AD9); // user RAM ;3
- loda,r0 $1AE1,r1 ;r0 = *($1AE1 + r1); ;3
- comi,r0 $FF ;compare r0 against $FF; ;2
- bcta,eq L083E ;if == goto L083E; ;3
- lodr,r0 *$07E5 ;r0 = *(*($07E5)); // ROM ;2
- strz r1 ;r1 = r0; ;1
- andi,r0 $07 ;r0 &= %00000111; ;2
- comi,r0 $03 ;compare r0 against $03; ;2
- bcfa,eq L083E ;if != goto L083E; ;3
- loda,r0 $18D4 ;r0 = *($18D4); // user RAM ;3
- addi,r0 $FF ;r0--; ;2
- strr,r0 *$0804 ;*(*($0804)) = r0; // ROM ;2
- bcta,eq L0841 ;if == goto L0841; ;3
- andi,r1 $18 ;r1 &= %00011000; ;2
- rrr,r1 ;r1 >>= 1; ;1
- rrr,r1 ;r1 >>= 1; ;1
- rrr,r1 ;r1 >>= 1; ;1
- loda,r0 $1AEE ;r0 = *($1AEE); // user RAM ;3
- comi,r0 $04 ;compare r0 against $04; ;2
- bctr,eq L083E ;if == goto L083E; ;2
- rrl,r0 ;r0 <<= 1; ;1
- rrl,r0 ;r0 <<= 1; ;1
- iorz r1 ;r0 |= r1; ;1
- loda,r0 $0E40,r0 ;r0 = *($0E40 + r0); ;3
- bsta,un L0FC0 ;gosub L0FC0; ;3
- loda,r1 $18ED ;r1 = *($18ED); // user RAM ;3
- andi,r1 $07 ;r1 &= %00000111; ;2
- comi,r1 $03 ;compare r1 against $03; ;2
- bcfr,eq L083E ;if != goto L083E; ;2
- loda,r1 $1AEE ;r1 = *($1AEE); // user RAM ;3
- loda,r0 SPRITE3X ;r0 = SPRITE3X; // hardware registers ;3
- adda,r0 $087E,r1 ;r0 += *($087E + r1); ;3
- strr,r0 *$082F ;*(*($082F)) = r0; // ROM ;2
- loda,r0 SPRITE3Y ;r0 = SPRITE3Y; // hardware registers ;3
- adda,r0 $087F,r1 ;r0 += *($087F + r1); ;3
- strr,r0 *$0837 ;*(*($0837)) = r0; // ROM ;2
- L083E:
- bcta,un L098B ;goto L098B; ;3
- ;
- L0841:
- lodr,r0 *$0837 ;r0 = *(*($0837)); // ROM ;2
- lodr,r1 *$082F ;r1 = *(*($082F)); // ROM ;2
- bsta,un L05D0 ;gosub L05D0; ;3
- comi,r1 $FF ;compare r1 against $FF; ;2
- bctr,eq L085F ;if == goto L085F; ;2
- lodi,r0 $BC ;r0 = $BC; ;2
- stra,r0 $1A00,r1 ;*($1A00 + r1) = r0; ;3
- lodz r1 ;r0 = r1; ;1
- loda,r1 $1AD9 ;r1 = *($1AD9); // user RAM ;3
- stra,r0 $1AE1,r1 ;*($1AE1 + r1) = r0; ;3
- lodr,r0 *$0874 ;r0 = *(*($0874)); // ROM ;2
- iora,r0 $0FDF,r1 ;r0 |= *($0FDF + r1); ;3
- bctr,un L0873 ;goto L0873; ;2
- ;
- L085F:
- lodi,r0 $BC ;r0 = $BC; ;2
- stra,r0 $1800,r2 ;*($1800 + r2) = r0; ;3
- lodz r2 ;r0 = r2; ;1
- loda,r1 $1AD9 ;r1 = *($1AD9); // user RAM ;3
- stra,r0 $1AE1,r1 ;*($1AE1 + r1) = r0; ;3
- lodr,r2 *$0874 ;r2 = *(*($0874)); // ROM ;2
- loda,r0 $0FDF,r1 ;r0 = *($0FDF + r1); ;3
- eori,r0 $FF ;r0 ^= %11111111; ;2
- andz r2 ;r0 &= r2; ;1
- L0873:
- stra,r0 $18D8 ;*($18D8) = r0; // user RAM ;3
- lodi,r0 $FF ;r0 = $FF; ;2
- stra,r0 SPRITE3X ;SPRITE3X = r0; // hardware registers ;3
- L087B:
- bcta,un L083E ;goto L083E; ;3
- ;
- X087E:
- db $00
- X087F:
- db $01, $00, $FF, $00
- X0883:
- db $00
- X0884:
- db $08, $00, $F8, $00
- db $00
- ;
- L0889:
- bsta,un L05B9 ;gosub L05B9; ;3
- stra,r0 SPRITE3Y ;SPRITE3Y = r0; // hardware registers ;3
- strr,r1 *$0879 ;*(*($0879)) = r1; // ROM ;2
- bcta,un L05D0 ;goto L05D0; ;3
- ;
- L0894:
- loda,r1 $1AD9 ;r1 = *($1AD9); // user RAM ;3
- lodi,r0 $FF ;r0 = $FF; ;2
- stra,r0 $1AE1,r1 ;*($1AE1 + r1) = r0; ;3
- bctr,un L087B ;goto L087B; ;2
- ;
- L089E:
- lodi,r0 $08 ;r0 = $08; ;2
- stra,r0 $18D4 ;*($18D4) = r0; // user RAM ;3
- lodr,r1 *$0895 ;r1 = *(*($0895)); // ROM ;2
- addi,r1 $01 ;r1++; ;2
- andi,r1 $07 ;r1 &= %00000111; ;2
- strr,r1 *$0895 ;*(*($0895)) = r1; // ROM ;2
- loda,r0 $1AE1,r1 ;r0 = *($1AE1 + r1); ;3
- comi,r0 $FF ;compare r0 against $FF; ;2
- bctr,eq L087B ;if == goto L087B; ;2
- strz r2 ;r2 = r0; ;1
- loda,r0 $18D8 ;r0 = *($18D8); // user RAM ;3
- anda,r0 $0FDF,r1 ;r0 &= *($0FDF + r1); ;3
- bctr,eq L08DB ;if == goto L08DB; ;2
- loda,r0 $1A00,r2 ;r0 = *($1A00 + r2); ;3
- comi,r0 $BC ;compare r0 against $BC; ;2
- L08C0:
- bcfr,eq L0894 ;if != goto L0894; ;2
- lodi,r0 $BD ;r0 = $BD; ;2
- stra,r0 $1A00,r2 ;*($1A00 + r2) = r0; ;3
- lodz r2 ;r0 = r2; ;1
- lodi,r2 $78 ;r2 = $78; ;2
- strz r1 ;r1 = r0; ;1
- bsta,un L0889 ;gosub L0889; ;3
- loda,r0 $1A00,r1 ;r0 = *($1A00 + r1); ;3
- comi,r0 $BD ;compare r0 against $BD; ;2
- bcfr,eq L08C0 ;if != goto L08C0; ;2
- eorz r0 ;r0 = 0; ;1
- stra,r0 $1A00,r1 ;*($1A00 + r1) = r0; ;3
- bctr,un L08FA ;goto L08FA; ;2
- ;
- L08DB:
- loda,r0 $1800,r2 ;r0 = *($1800 + r2); ;3
- comi,r0 $BC ;compare r0 against $BC; ;2
- bcfr,eq L08F3 ;if != goto L08F3; ;2
- lodi,r0 $BD ;r0 = $BD; ;2
- stra,r0 $1800,r2 ;*($1800 + r2) = r0; ;3
- lodz r2 ;r0 = r2; ;1
- lodi,r2 $10 ;r2 = $10; ;2
- strz r1 ;r1 = r0; ;1
- bsta,un L0889 ;gosub L0889; ;3
- loda,r0 $1800,r2 ;r0 = *($1800 + r2); ;3
- comi,r0 $BD ;compare r0 against $BD; ;2
- L08F3:
- bcfa,eq L0894 ;if != goto L0894; ;3
- eorz r0 ;r0 = 0; ;1
- stra,r0 $1800,r2 ;*($1800 + r2) = r0; ;3
- L08FA:
- loda,r1 $18ED ;r1 = *($18ED); // user RAM ;3
- andi,r1 $80 ;r1 &= %10000000; ;2
- bctr,eq L0928 ;if == goto L0928; ;2
- loda,r0 SPRITE3X ;r0 = SPRITE3X; // hardware registers ;3
- suba,r0 SPRITE2X ;r0 -= SPRITE2X; // hardware registers ;3
- bcfr,lt L0916 ;if >= goto L0916; ;2
- bctr,eq L0920 ;if == goto L0920; ;2
- lodi,r0 $01 ;r0 = $01; ;2
- bsta,un L0945 ;gosub L0945; ;3
- bctr,eq L0928 ;if == goto L0928; ;2
- lodi,r0 $01 ;r0 = $01; ;2
- bctr,un L0922 ;goto L0922; ;2
- ;
- L0916:
- lodi,r0 $03 ;r0 = $03; ;2
- bstr,un L0945 ;gosub L0945; ;2
- bctr,eq L0928 ;if == goto L0928; ;2
- lodi,r0 $03 ;r0 = $03; ;2
- bctr,un L0922 ;goto L0922; ;2
- ;
- L0920:
- lodi,r0 $04 ;r0 = $04; ;2
- L0922:
- stra,r0 $1AEE ;*($1AEE) = r0; // user RAM ;3
- bcta,un L098B ;goto L098B; ;3
- ;
- L0928:
- loda,r0 SPRITE3Y ;r0 = SPRITE3Y; // hardware registers ;3
- strz r2 ;r2 = r0; ;1
- coma,r0 SPRITE2Y ;compare r0 against SPRITE2Y; // hardware registers
- ;3
- bctr,gt L093B ;if > goto L093B; ;2
- bctr,eq L0920 ;if == goto L0920; ;2
- eorz r0 ;r0 = 0; ;1
- bstr,un L0945 ;gosub L0945; ;2
- bctr,eq L0920 ;if == goto L0920; ;2
- eorz r0 ;r0 = 0; ;1
- bctr,un L0922 ;goto L0922; ;2
- ;
- L093B:
- lodi,r0 $02 ;r0 = $02; ;2
- bstr,un L0945 ;gosub L0945; ;2
- bctr,eq L0920 ;if == goto L0920; ;2
- lodi,r0 $02 ;r0 = $02; ;2
- bctr,un L0922 ;goto L0922; ;2
- ;
- L0945:
- strz r3 ;r3 = r0; ;1
- loda,r0 SPRITE3X ;r0 = SPRITE3X; // hardware registers ;3
- adda,r0 $0883,r3 ;r0 += *($0883 + r3); ;3
- strz r1 ;r1 = r0; ;1
- comi,r0 $B0 ;compare r0 against $B0; ;2
- bctr,gt L0973 ;if > goto L0973; ;2
- loda,r0 SPRITE3Y ;r0 = SPRITE3Y; // hardware registers ;3
- adda,r0 $0884,r3 ;r0 += *($0884 + r3); ;3
- bsta,un L05D0 ;gosub L05D0; ;3
- comi,r0 $FF ;compare r0 against $FF; ;2
- bctr,eq L0973 ;if == goto L0973; ;2
- comi,r1 $FF ;compare r1 against $FF; ;2
- bcfr,eq L0967 ;if != goto L0967; ;2
- loda,r0 $1800,r2 ;r0 = *($1800 + r2); ;3
- bctr,un L096A ;goto L096A; ;2
- ;
- L0967:
- loda,r0 $1A00,r1 ;r0 = *($1A00 + r1); ;3
- L096A:
- comi,r0 $3F ;compare r0 against $3F; ;2
- bctr,eq L0973 ;if == goto L0973; ;2
- comi,r0 $BC ;compare r0 against $BC; ;2
- bctr,eq L0973 ;if == goto L0973; ;2
- retc,un ;return; ;1
- ;
- L0973:
- eorz r0 ;r0 = 0; ;1
- retc,un ;return; ;1
- ;
- L0975:
- lodi,r1 $04 ;r1 = $04; ;2
- L0977:
- loda,r0 $17FF,r1 ;r0 = *($17FF + r1); ;3
- addi,r0 $01 ;r0++; ;2
- stra,r0 $17FF,r1 ;*($17FF + r1) = r0; ;3
- comi,r0 $5A ;compare r0 against $5A; ;2
- bcfr,eq L098A ;if != goto L098A; ;2
- lodi,r0 $50 ;r0 = $50; ;2
- stra,r0 $17FF,r1 ;*($17FF + r1) = r0; ;3
- bdrr,r1 L0977 ;if (--r1 != 0) goto L0977; ;2
- L098A:
- retc,un ;return; ;1
- ;
- L098B:
- loda,r0 $1AF7 ;r0 = *($1AF7); // user RAM ;3
- bctr,eq L0999 ;if == goto L0999; ;2
- addi,r0 $FF ;r0--; ;2
- strr,r0 *$098C ;*(*($098C)) = r0; // ROM ;2
- bsta,un L0182 ;gosub L0182; ;3
- bstr,un L0975 ;gosub L0975; ;2
- L0999:
- tpsu $80 ;test bits %10000000 of PSU; ;2
- bctr,eq L0999 ;if == goto L0999; ;2
- loda,r1 $18ED ;r1 = *($18ED); // user RAM ;3
- addi,r1 $01 ;r1++; ;2
- andi,r1 $03 ;r1 &= %00000011; ;2
- rrl,r1 ;r1 <<= 1; ;1
- loda,r0 $18E4,r1 ;r0 = *($18E4 + r1); ;3
- stra,r0 SPRITE0Y ;SPRITE0Y = r0; // hardware registers ;3
- loda,r0 $18E5,r1 ;r0 = *($18E5 + r1); ;3
- stra,r0 SPRITE0X ;SPRITE0X = r0; // hardware registers ;3
- rrr,r1 ;r1 >>= 1; ;1
- lodz r1 ;r0 = r1; ;1
- strz r2 ;r2 = r0; ;1
- bcfr,eq L09BB ;if != goto L09BB; ;2
- loda,r0 $18EC ;r0 = *($18EC); // user RAM ;3
- bcfr,eq L09C1 ;if != goto L09C1; ;2
- L09BB:
- loda,r0 $09D0,r2 ;r0 = *($09D0 + r2); ;3
- bsta,un L0FB4 ;gosub L0FB4; ;3
- L09C1:
- loda,r0 $09D4,r2 ;r0 = *($09D4 + r2); ;3
- loda,r1 $0DFB ;r1 = *($0DFB); // ROM ;3
- andi,r1 $C7 ;r1 &= %11000111; ;2
- iorz r1 ;r0 |= r1; ;1
- stra,r0 $1AF5 ;*($1AF5) = r0; // user RAM ;3
- bcta,un L003A ;goto L003A; ;3
- ;
- X09D0:
- db $88, $68, $70, $78
- X09D4:
- db $30, $00, $10, $08
- X09D8:
- db $00, $15, $28, $39
- db $4E, $64, $75, $88
- X09E0:
- db $00, $27, $3B, $4C
- db $62, $7F, $99, $B0
- ;
- L09E8:
- strz r2 ;r2 = r0; ;1
- strz r3 ;r3 = r0; ;1
- loda,r0 $09D8,r2 ;r0 = *($09D8 + r2); ;3
- strz r1 ;r1 = r0; ;1
- L09EE:
- loda,r0 $0E4F,r1+ ;r0 = *($0E4F + ++r1); ;3
- comi,r0 $FF ;compare r0 against $FF; ;2
- bctr,eq L09FD ;if == goto L09FD; ;2
- strz r2 ;r2 = r0; ;1
- lodi,r0 $3F ;r0 = $3F; ;2
- stra,r0 $1800,r2 ;*($1800 + r2) = r0; ;3
- bctr,un L09EE ;goto L09EE; ;2
- ;
- L09FD:
- loda,r0 $09E0,r3 ;r0 = *($09E0 + r3); ;3
- strz r1 ;r1 = r0; ;1
- L0A01:
- loda,r0 $0EED,r1+ ;r0 = *($0EED + ++r1); ;3
- comi,r0 $FF ;compare r0 against $FF; ;2
- bctr,eq L0A10 ;if == goto L0A10; ;2
- strz r3 ;r3 = r0; ;1
- lodi,r0 $3F ;r0 = $3F; ;2
- stra,r0 $1A00,r3 ;*($1A00 + r3) = r0; ;3
- bctr,un L0A01 ;goto L0A01; ;2
- L0A10:
- retc,un ;return; ;1
- ;
- L0A11:
- loda,r0 $1815 ;r0 = *($1815); // upper screen ;3
- stra,r0 $1AFE ;*($1AFE) = r0; // user RAM ;3
- loda,r0 $181F ;r0 = *($181F); // upper screen ;3
- stra,r0 $1AFF ;*($1AFF) = r0; // user RAM ;3
- bstr,un L0A38 ;gosub L0A38; ;2
- lodi,r1 $30 ;r1 = $30; ;2
- L0A21:
- loda,r0 $0DBF,r1 ;r0 = *($0DBF + r1); ;3
- stra,r0 $17FF,r1 ;*($17FF + r1) = r0; ;3
- bdrr,r1 L0A21 ;if (--r1 != 0) goto L0A21; ;2
- bstr,un L0A45 ;gosub L0A45; ;2
- loda,r0 $1AFE ;r0 = *($1AFE); // user RAM ;3
- stra,r0 $1815 ;*($1815) = r0; // upper screen ;3
- loda,r0 $1AFF ;r0 = *($1AFF); // user RAM ;3
- stra,r0 $181F ;*($181F) = r0; // upper screen ;3
- retc,un ;return; ;1
- ;
- L0A38:
- lodi,r1 $04 ;r1 = $04; ;2
- L0A3A:
- loda,r0 $180A,r1 ;r0 = *($180A + r1); ;3
- stra,r0 $1AEF,r1 ;*($1AEF + r1) = r0; ;3
- bdrr,r1 L0A3A ;if (--r1 != 0) goto L0A3A; ;2
- retc,un ;return; ;1
- ;
- L0A43:
- bstr,un L0A38 ;gosub L0A38; ;2
- L0A45:
- lodi,r1 $A0 ;r1 = $A0; ;2
- L0A47:
- eorz r0 ;r0 = 0; ;1
- stra,r0 $182F,r1 ;*($182F + r1) = r0; ;3
- stra,r0 $19FF,r1 ;*($19FF + r1) = r0; ;3
- stra,r0 $1A2F,r1 ;*($1A2F + r1) = r0; ;3
- bdrr,r1 L0A47 ;if (--r1 != 0) goto L0A47; ;2
- bsta,un L09E8 ;gosub L09E8; ;3
- loda,r0 $1AF8 ;r0 = *($1AF8); // user RAM ;3
- adda,r0 $18F9 ;r0 += *($18F9); // user RAM ;3
- stra,r0 $1AF8 ;*($1AF8) = r0; // user RAM ;3
- andi,r0 $07 ;r0 &= %00000111; ;2
- bsta,un L09E8 ;gosub L09E8; ;3
- lodi,r1 $20 ;r1 = $20; ;2
- L0A66:
- eorz r0 ;r0 = 0; ;1
- stra,r0 $1ACF,r1 ;*($1ACF + r1) = r0; ;3
- stra,r0 $18CF,r1 ;*($18CF + r1) = r0; ;3
- bdrr,r1 L0A66 ;if (--r1 != 0) goto L0A66; ;2
- L0A6F:
- tpsu $80 ;test bits %10000000 of PSU; ;2
- bcfr,eq L0A6F ;if != goto L0A6F; ;2
- lodi,r1 $80 ;r1 = $80; ;2
- L0A75:
- loda,r0 $0D7F,r1 ;r0 = *($0D7F + r1); ;3
- stra,r0 $197F,r1 ;*($197F + r1) = r0; ;3
- bdrr,r1 L0A75 ;if (--r1 != 0) goto L0A75; ;2
- bsta,un L016F ;gosub L016F; ;3
- loda,r0 $0DF9 ;r0 = *($0DF9); // ROM ;3
- stra,r0 $18E3 ;*($18E3) = r0; // user RAM ;3
- eorz r0 ;r0 = 0; ;1
- stra,r0 CRTCVPR ;CRTCVPR = r0; // hardware registers ;3
- lodi,r1 $04 ;r1 = $04; ;2
- L0A8C:
- loda,r0 $1AEF,r1 ;r0 = *($1AEF + r1); ;3
- stra,r0 $180A,r1 ;*($180A + r1) = r0; ;3
- bdrr,r1 L0A8C ;if (--r1 != 0) goto L0A8C; ;2
- retc,un ;return; ;1
- ;
- L0A95:
- tpsu $80 ;test bits %10000000 of PSU; ;2
- bcfr,eq L0A95 ;if != goto L0A95; ;2
- loda,r0 $1AF5 ;r0 = *($1AF5); // user RAM ;3
- stra,r0 SPRITES01CTRL
- ;SPRITES01CTRL = r0; // hardware registers
- ;3
- lodi,r1 $02 ;r1 = $02; ;2
- L0AA1:
- loda,r0 $19FB,r1 ;r0 = *($19FB + r1); ;3
- stra,r0 $1AF9,r1 ;*($1AF9 + r1) = r0; ;3
- bdrr,r1 L0AA1 ;if (--r1 != 0) goto L0AA1; ;2
- loda,r1 $18ED ;r1 = *($18ED); // user RAM ;3
- addi,r1 $01 ;r1++; ;2
- strr,r1 *$0AAA ;*(*($0AAA)) = r1; // ROM ;2
- andi,r1 $01 ;r1 &= %00000001; ;2
- loda,r0 P1PADDLE ;r0 = P1PADDLE; // hardware registers ;3
- stra,r0 $1AFC,r1 ;*($1AFC + r1) = r0; ;3
- loda,r0 $18E3 ;r0 = *($18E3); // user RAM ;3
- andi,r0 $BF ;r0 &= %10111111; ;2
- iora,r0 $0FFB,r1 ;r0 |= *($0FFB + r1); ;3
- stra,r0 $18E3 ;*($18E3) = r0; // user RAM ;3
- stra,r0 BGCOLOUR ;BGCOLOUR = r0; // hardware registers ;3
- loda,r3 $1AD8 ;r3 = *($1AD8); // user RAM ;3
- tmi,r3 $01 ;test bits %00000001 of r3; ;2
- bcfr,eq L0ADC ;if != goto L0ADC; ;2
- andi,r3 $FE ;r3 &= %11111110; ;2
- lodi,r1 $08 ;r1 = $08; ;2
- loda,r2 $1AD0 ;r2 = *($1AD0); // user RAM ;3
- L0AD4:
- loda,r0 $0D00,r2- ;r0 = *($0D00 + --r2); ;3
- stra,r0 $197F,r1 ;*($197F + r1) = r0; ;3
- bdrr,r1 L0AD4 ;if (--r1 != 0) goto L0AD4; ;2
- L0ADC:
- tmi,r3 $02 ;test bits %00000010 of r3; ;2
- bcfr,eq L0AEF ;if != goto L0AEF; ;2
- andi,r3 $FD ;r3 &= %11111101; ;2
- loda,r2 $1AD1 ;r2 = *($1AD1); // user RAM ;3
- lodi,r1 $08 ;r1 = $08; ;2
- L0AE7:
- loda,r0 $0D00,r2- ;r0 = *($0D00 + --r2); ;3
- stra,r0 $1987,r1 ;*($1987 + r1) = r0; ;3
- bdrr,r1 L0AE7 ;if (--r1 != 0) goto L0AE7; ;2
- L0AEF:
- tmi,r3 $08 ;test bits %00001000 of r3; ;2
- bcfr,eq L0B02 ;if != goto L0B02; ;2
- andi,r3 $F7 ;r3 &= %11110111; ;2
- loda,r2 $1AD3 ;r2 = *($1AD3); // user RAM ;3
- lodi,r1 $08 ;r1 = $08; ;2
- L0AFA:
- loda,r0 $0C40,r2- ;r0 = *($0C40 + --r2); ;3
- stra,r0 $1997,r1 ;*($1997 + r1) = r0; ;3
- bdrr,r1 L0AFA ;if (--r1 != 0) goto L0AFA; ;2
- L0B02:
- tmi,r3 $10 ;test bits %00010000 of r3; ;2
- bcfr,eq L0B15 ;if != goto L0B15; ;2
- andi,r3 $EF ;r3 &= %11101111; ;2
- loda,r2 $1AD4 ;r2 = *($1AD4); // user RAM ;3
- lodi,r1 $08 ;r1 = $08; ;2
- L0B0D:
- loda,r0 $0C40,r2- ;r0 = *($0C40 + --r2); ;3
- stra,r0 $199F,r1 ;*($199F + r1) = r0; ;3
- bdrr,r1 L0B0D ;if (--r1 != 0) goto L0B0D; ;2
- L0B15:
- tmi,r3 $20 ;test bits %00100000 of r3; ;2
- bcfr,eq L0B28 ;if != goto L0B28; ;2
- andi,r3 $DF ;r3 &= %11011111; ;2
- loda,r2 $1AD5 ;r2 = *($1AD5); // user RAM ;3
- lodi,r1 $08 ;r1 = $08; ;2
- L0B20:
- loda,r0 $0D00,r2- ;r0 = *($0D00 + --r2); ;3
- stra,r0 $19A7,r1 ;*($19A7 + r1) = r0; ;3
- bdrr,r1 L0B20 ;if (--r1 != 0) goto L0B20; ;2
- L0B28:
- tmi,r3 $04 ;test bits %00000100 of r3; ;2
- bcfr,eq L0B3B ;if != goto L0B3B; ;2
- andi,r3 $FB ;r3 &= %11111011; ;2
- loda,r2 $1AD2 ;r2 = *($1AD2); // user RAM ;3
- lodi,r1 $08 ;r1 = $08; ;2
- L0B33:
- loda,r0 $0B60,r2- ;r0 = *($0B60 + --r2); ;3
- stra,r0 $198F,r1 ;*($198F + r1) = r0; ;3
- bdrr,r1 L0B33 ;if (--r1 != 0) goto L0B33; ;2
- L0B3B:
- stra,r3 $1AD8 ;*($1AD8) = r3; // user RAM ;3
- lodr,r0 *$0B4A ;r0 = *(*($0B4A)); // ROM ;2
- bcfr,eq L0B49 ;if != goto L0B49; ;2
- lodr,r0 *$0B47 ;r0 = *(*($0B47)); // ROM ;2
- addi,r0 $01 ;r0++; ;2
- stra,r0 $18F9 ;*($18F9) = r0; // user RAM ;3
- L0B49:
- loda,r0 $18ED ;r0 = *($18ED); // user RAM ;3
- andi,r0 $03 ;r0 &= %00000011; ;2
- bcfr,eq L0B57 ;if != goto L0B57; ;2
- lodr,r0 *$0B55 ;r0 = *(*($0B55)); // ROM ;2
- addi,r0 $01 ;r0++; ;2
- stra,r0 $18D6 ;*($18D6) = r0; // user RAM ;3
- L0B57:
- retc,un ;return; ;1
- ;
- db $FF, $FF, $FF, $FF
- db $FF, $FF, $FF, $FF
- X0B60:
- db $A4, $78, $10, $3C
- db $22, $1B, $00, $00
- db $40, $52, $3C, $08
- db $1E, $12, $73, $00
- db $84, $A8, $70, $20
- db $5C, $66, $10, $18
- db $10, $7C, $54, $54
- db $28, $28, $28, $28
- db $10, $18, $18, $18
- db $18, $1E, $1A, $18
- db $20, $38, $14, $14
- db $78, $24, $34, $14
- db $40, $38, $68, $82
- db $70, $48, $24, $04
- db $10, $1C, $74, $10
- db $F0, $88, $44, $02
- db $10, $1C, $72, $10
- db $F8, $84, $02, $01
- db $08, $0E, $1A, $00
- db $1C, $24, $43, $C0
- db $10, $18, $34, $14
- db $28, $2E, $22, $60
- db $10, $18, $34, $18
- db $18, $1C, $14, $34
- db $08, $18, $18, $18
- db $18, $78, $50, $18
- db $04, $1C, $28, $28
- db $1C, $24, $2C, $28
- db $02, $1C, $26, $2C
- db $0E, $12, $24, $20
- db $08, $38, $2E, $08
- db $0F, $11, $22, $40
- db $08, $38, $4E, $08
- db $1F, $21, $40, $80
- db $10, $70, $58, $10
- db $38, $24, $E2, $03
- db $08, $18, $2C, $28
- db $14, $74, $44, $06
- db $08, $18, $2C, $18
- db $18, $38, $28, $06
- db $10, $7C, $54, $50
- db $28, $08, $20, $08
- db $10, $7C, $54, $14
- db $28, $20, $08, $20
- db $10, $7C, $54, $50
- db $28, $08, $20, $08
- db $10, $7C, $54, $14
- db $28, $20, $08, $20
- db $0A, $3E, $28, $20
- db $16, $22, $26, $34
- db $08, $37, $2A, $0C
- db $34, $22, $32, $16
- db $48, $3E, $0A, $1C
- db $12, $12, $36, $00
- db $24, $F8, $A0, $70
- db $90, $90, $D8, $00
- X0C40:
- db $38, $6C, $FE, $BA
- db $BA, $B8, $68, $0C
- db $38, $5C, $FE, $BA
- db $BA, $3A, $2C, $60
- db $38, $6C, $FE, $BA
- db $BA, $B8, $68, $0C
- db $38, $74, $FE, $BA
- db $BA, $3A, $2C, $60
- db $38, $6C, $FE, $BA
- db $BA, $BA, $28, $78
- db $38, $5C, $FE, $BA
- db $BA, $BA, $30, $70
- db $38, $3C, $FE, $BA
- db $BA, $BA, $18, $38
- db $38, $5C, $FE, $BA
- db $BA, $BA, $28, $78
- db $38, $6C, $FE, $BA
- db $BA, $BA, $28, $3C
- db $38, $74, $FE, $BA
- db $BA, $BA, $18, $1C
- db $38, $78, $FE, $BA
- db $BA, $BA, $30, $38
- db $38, $74, $FE, $BA
- db $BA, $BA, $28, $3C
- db $38, $7C, $FE, $BA
- db $BA, $B8, $68, $0C
- db $38, $7C, $FE, $BA
- db $BA, $3A, $2C, $60
- db $38, $7C, $FE, $BA
- db $BA, $B8, $68, $0C
- db $38, $7C, $FE, $BA
- db $BA, $3A, $2C, $60
- db $38, $6C, $FE, $BA
- db $BA, $BA, $28, $6C
- db $28, $6C, $FE, $BA
- db $BA, $BA, $28, $6C
- db $38, $6C, $FE, $BA
- db $BA, $BA, $28, $6C
- db $38, $6C, $FE, $BA
- db $BA, $BA, $28, $6C
- db $38, $6C, $FE, $BA
- db $BA, $BA, $28, $6C
- db $38, $6C, $FE, $BA
- db $BA, $BA, $28, $6C
- db $08, $6B, $92, $08
- db $69, $C8, $05, $08
- db $5D, $75, $FF, $77
- db $90, $D4, $F0, $C0
- X0D00:
- db $00, $00, $14, $2A
- db $18, $5A, $00, $00
- db $A9, $28, $CB, $D6
- db $18, $52, $98, $A1
- db $EF, $83, $AB, $AB
- db $D7, $D7, $D7, $D7
- db $FF, $FF, $EF, $83
- db $AB, $AB, $D7, $D7
- db $00, $00, $00, $18
- db $18, $00, $00, $00
- db $00, $00, $18, $3C
- db $3C, $18, $00, $00
- db $00, $18, $3C, $5A
- db $7E, $66, $38, $00
- db $18, $3C, $5A, $7E
- db $66, $42, $3C, $18
- db $18, $3C, $5A, $7E
- db $66, $42, $3C, $18
- db $18, $3C, $5A, $7E
- db $7E, $42, $3C, $18
- db $18, $3C, $5A, $7E
- db $7E, $42, $7E, $18
- db $18, $3C, $5A, $5A
- db $7E, $7E, $3C, $18
- db $00, $00, $3C, $3C
- db $34, $34, $3C, $3C
- db $00, $18, $18, $3C
- db $3C, $18, $18, $00
- db $00, $24, $18, $18
- db $18, $24, $00, $00
- db $00, $00, $00, $00
- db $00, $00, $00
- X0D7F:
- db $00, $00, $30, $78
- db $78, $78, $78, $30
- db $00, $00, $00, $00
- db $00, $00, $00, $00
- db $00, $10, $7C, $54
- db $54, $28, $28, $28
- db $28, $38, $6C, $FE
- db $BA, $BA, $28, $28
- db $6C, $38, $6C, $FE
- db $BA, $BA, $28, $28
- db $6C, $82, $38, $28
- db $28, $28, $28, $00
- db $28, $10, $38, $5C
- db $F6, $BE, $38, $38
- db $38, $AA, $55, $AA
- db $55, $AA, $55, $AA
- X0DBF:
- db $55, $50, $50, $50
- db $50, $50, $00, $BA
- db $BA, $BA, $BA, $00
- db $10, $10, $10, $10
- db $10, $A0, $9A, $A6
- db $9E, $00, $00, $00
- db $00, $00, $00, $00
- db $68, $69, $6D, $00
- db $00, $3F, $3F, $3F
- db $3F, $3F, $3F, $3F
- db $3F, $3F, $3F, $3F
- db $3F, $3F, $3F, $3F
- db $3F, $00, $00, $00
- db $00, $00, $00, $00
- db $00, $4F
- X0DF9:
- db $CF, $C6
- X0DFB:
- db $F4, $00, $00, $00
- db $00
- X0E00:
- db $A8, $A8, $B0, $B0
- db $A8, $A8, $B0, $B0
- db $68, $70, $78, $80
- db $88, $90, $98, $A0
- db $68, $70, $78, $80
- db $88, $90, $98, $A0
- db $68, $70, $78, $80
- db $88, $90, $98, $A0
- db $B8, $B8, $C0, $C0
- db $B8, $B8, $C0, $C0
- db $28, $30, $38, $40
- db $48, $50, $58, $60
- db $28, $30, $38, $40
- db $48, $50, $58, $60
- db $28, $30, $38, $40
- db $48, $50, $58, $60
- X0E40:
- db $68, $70, $78, $80
- db $48, $50, $58, $60
- db $08, $10, $18, $20
- db $28, $30, $38
- X0E4F:
- db $40, $30, $40, $50
- db $60, $70, $80, $90
- db $A0, $B0, $C0, $6F
- db $7F, $8F, $9F, $AF
- db $BF, $BF, $3F, $4F
- db $5F, $FF, $74, $75
- db $76, $77, $78, $79
- db $7A, $84, $94, $A4
- db $B4, $C4, $BB, $BC
- db $BD, $BE, $BE, $BE
- db $FF, $BF, $35, $45
- db $55, $65, $75, $85
- db $95, $A5, $6A, $7A
- db $8A, $9A, $CA, $AA
- db $BA, $FF, $35, $45
- db $55, $65, $75, $85
- db $95, $A5, $B5, $C5
- db $6B, $7B, $8B, $9B
- db $AB, $BB, $CB, $68
- db $69, $6A, $FF, $34
- db $44, $54, $64, $74
- db $84, $94, $A4, $B4
- db $C4, $BE, $78, $88
- db $98, $A8, $B8, $C8
- db $BC, $BD, $BE, $CC
- db $FF, $35, $45, $55
- db $65, $75, $85, $95
- db $A5, $B5, $C5, $B8
- db $BC, $BD, $BE, $C8
- db $C8, $FF, $74, $84
- db $94, $A4, $B4, $B7
- db $C7, $3A, $4A, $5A
- db $6A, $7A, $8A, $9A
- db $AA, $BA, $BD, $BE
- db $FF, $BB, $CB, $7B
- db $8B, $9B, $AB, $74
- db $75, $76, $77, $78
- db $79, $7A, $B1, $B2
- db $B3, $B4, $B5, $B6
- db $B7, $C7
- X0EED:
- db $FF, $C0, $C1, $C2
- db $C3, $C4, $C5, $C6
- db $C7, $CA, $CB, $CC
- db $CD, $CE, $CF, $C8
- db $C9, $00, $10, $20
- db $30, $40, $50, $60
- db $70, $80, $90, $A0
- db $B0, $C0, $9F, $8F
- db $7F, $6F, $5F, $4F
- db $3F, $AF, $BF, $FF
- db $74, $75, $76, $77
- db $78, $79, $7A, $3B
- db $3C, $3D, $3E, $04
- db $14, $24, $34, $44
- db $54, $64, $74, $FF
- db $45, $55, $65, $75
- db $85, $95, $A5, $B5
- db $0A, $1A, $2A, $3A
- db $4A, $5A, $6A, $7A
- db $FF, $35, $45, $55
- db $65, $75, $85, $95
- db $A5, $B5, $0B, $1B
- db $2B, $3B, $4B, $5B
- db $6B, $7B, $8B, $88
- db $89, $8A, $FF, $04
- db $14, $24, $34, $44
- db $54, $64, $74, $08
- db $18, $28, $38, $48
- db $58, $68, $78, $88
- db $98, $A8, $B8, $0C
- db $1C, $2C, $3C, $4C
- db $5C, $6C, $7C, $FF
- db $05, $15, $25, $35
- db $45, $55, $65, $75
- db $85, $86, $87, $88
- db $89, $8A, $8B, $38
- db $39, $3A, $3B, $3C
- db $3D, $3E, $08, $18
- db $28, $FF, $24, $34
- db $44, $54, $64, $74
- db $07, $17, $27, $37
- db $47, $3A, $4A, $5A
- db $6A, $7A, $8A, $9A
- db $AA, $3D, $3E, $BA
- db $FF, $0B, $1B, $3B
- db $3C, $3D, $3E, $2B
- db $07, $07, $17, $27
- db $37, $47, $57, $67
- db $77, $77, $78, $79
- db $7A, $7B, $FF
- ;
- L0FB4:
- lodi,r1 $01 ;r1 = $01; ;2
- bctr,un L0FD2 ;goto L0FD2; ;2
- ;
- L0FB8:
- lodi,r1 $02 ;r1 = $02; ;2
- bctr,un L0FD2 ;goto L0FD2; ;2
- ;
- L0FBC:
- lodi,r1 $03 ;r1 = $03; ;2
- bctr,un L0FD2 ;goto L0FD2; ;2
- ;
- L0FC0:
- lodi,r1 $04 ;r1 = $04; ;2
- bctr,un L0FD2 ;goto L0FD2; ;2
- ;
- L0FC4:
- lodi,r1 $05 ;r1 = $05; ;2
- bctr,un L0FD2 ;goto L0FD2; ;2
- ;
- db $05, $06, $1B, $06
- db $05, $07, $1B, $02
- db $05, $08
- ;
- L0FD2:
- stra,r0 $1ACF,r1 ;*($1ACF + r1) = r0; ;3
- loda,r0 $0FDE,r1 ;r0 = *($0FDE + r1); ;3
- iora,r0 $1AD8 ;r0 |= *($1AD8); // user RAM ;3
- stra,r0 $1AD8 ;*($1AD8) = r0; // user RAM ;3
- X0FDE:
- retc,un ;return; ;1
- ;
- X0FDF:
- db $01, $02, $04, $08
- db $10, $20, $40, $80
- ;
- L0FE7:
- lodi,r1 $09 ;r1 = $09; ;2
- L0FE9:
- loda,r0 $0FF1,r1 ;r0 = *($0FF1 + r1); ;3
- stra,r0 $1A02,r1 ;*($1A02 + r1) = r0; ;3
- bdrr,r1 L0FE9 ;if (--r1 != 0) goto L0FE9; ;2
- X0FF1:
- retc,un ;return; ;1
- ;
- db $20, $1A, $26, $1E
- db $00, $28, $2F, $1E
- db $2B
- X0FFB:
- db $40, $00, $00, $00
- db $00
-
- end
-